(defpackage :fwoar.default-layout (:use :cl ) (:export #:default-layout #:border-color #:background-color #:text-color #:link-color)) (in-package :fwoar.default-layout) (defgeneric border-color (layout) ) (defgeneric text-color (layout) ) (defgeneric link-color (layout) (:method (layout) (text-color layout))) (defgeneric background-color (layout) ) (defclass default-layout () ((%text-color :reader text-color :initform "#eee") (%border-color :reader border-color :initform "#eee") (%background-color :reader background-color :initform "#eee"))) (defmethod araneus:styles append ((layout default-layout)) `((body :background ,(background-color layout) :color ,(text-color layout) :display flex :flex-direction column :min-height 100vh) (a :color ,(link-color layout)) (h1 :height 3em :border-bottom 4px double ,(border-color layout) :text-align center :line-height 3em) (div.main :display flex :width 100% :flex-grow 1 :flex-shrink 1 ) (nav :width 20rem :display flex :flex-grow 0 :flex-shrink 0 :flex-direction column) ((:or (nav a) (:and a "[data-ic-get-from]")) :cursor pointer :font-weight bold :text-align right :text-decoration underline) ((nav a) :padding 1.5rem) ((nav (:and a :hover)) :background ,(link-color layout) :color ,(background-color layout)) (("#content" img) :max-width "70%" :margin 1em) (main :border-left 4px double ,(border-color layout) :flex-grow 1 :flex-shrink 1 :padding 1.5rem :max-width 50em) ("#ic-debug-panel" :background ,(background-color layout) !important :color ,(text-color layout)) (("#ic-debug-panel" > *) :background ,(background-color layout) !important :color ,(text-color layout))))