title: $:/core/macros/CSS tags: $:/tags/Macro \procedure actions-compile-palette-filtered(consolidatedPalette,outputPalette) \function tf.colour(name) [getindex] :else[[$:/config/DefaultColourMappings/]addsuffixget[text]] :map[tf.colour-inner-transform-classic-palette-entry] :map[subfilterjoin[ ]] \function colour(name) [tf.colour] \function color(name) [tf.colour] <$list filter="[indexes[]sort[]]" variable="colour-name"> <$let filter-text={{{ [getindex] :else[[$:/config/DefaultColourMappings/]addsuffixget[text]] :map[tf.colour-inner-transform-classic-palette-entry] }}}> <$action-setfield $tiddler=<> $index=<> $value={{{ [subfilterjoin[ ]] }}}/> \end actions-compile-palette-filtered \procedure actions-compile-palette-import(inputPalette,outputPalette,exclusions:"",scheme) <%if [enlist!matchcount[]] :map[enlistcount[]compare:number:eq] +[!match[]] %> <$set name="exclusions" filter="[enlist] []"> <$let prefixed-palette-import={{{ [[palette-import@]addsuffix] }}} inputPalette={{{ [gethas[title]] :else[get[palette-import]] }}} > <%if [has[title]] %> <$transclude $variable="actions-compile-palette-import" inputPalette=<> outputPalette=<> exclusions=<> scheme=<>/> <%endif%> <%if [!is[blank]] %> <$let prefixed-scheme={{{ [addprefix[@]] }}} > <$action-setmultiplefields $tiddler=<> $indexes="[indexes[]suffixremovesuffixsort[]]" $values="[indexes[]suffixsort[]] :map[getindex]"/> <%endif% <$action-setmultiplefields $tiddler=<> $indexes="[indexes[]!regexp[@]sort[]]" $values="[indexes[]!regexp[@]sort[]] :map[getindex]"/> <$action-setmultiplefields $tiddler=<> $fields="[fields[]sort[]] -title -tags -text" $values="[fields[]sort[]] -title -tags -text :map[get]"/> <%endif%> \end actions-compile-palette-import \procedure actions-compile-palette(inputPalette,outputPalette) \procedure tv-action-refresh-policy() always <$let consolidatedPalette="$:/temp/palette-consolidated" > <$let color-scheme-filter={{{ [get[color-scheme]] :else[[light]] }}} scheme={{{ [subfilter] }}} > <$action-deletetiddler $tiddler=<>/> <$action-setfield $tiddler=<> type="application/x-tiddler-dictionary"/> <$action-deletetiddler $tiddler=<>/> <$action-setfield $tiddler=<> type="application/x-tiddler-dictionary"/> <$list filter="[all[shadows+tiddlers]tag[$:/tags/BackgroundPalette]sort[]]" variable="palette-name"> <$transclude $variable="actions-compile-palette-import" inputPalette=<> outputPalette=<> scheme=<>/> <$transclude $variable="actions-compile-palette-import" inputPalette=<> outputPalette=<> scheme=<>/> <$action-setfield $tiddler=<> $field="color-scheme" $value=<>/> <$transclude $variable="actions-compile-palette-filtered" consolidatedPalette=<> outputPalette=<>/> \end actions-compile-palette \procedure actions-recompile-current-palette() \procedure tv-action-refresh-policy() always <$transclude $variable="actions-compile-palette" inputPalette={{$:/palette}} outputPalette="$:/temp/palette-colours"/> \end actions-recompile-current-palette \procedure actions-switch-colour-palette(paletteTitle) \procedure tv-action-refresh-policy() always <$action-deletetiddler $tiddler="$:/temp/palette-colours"/> <> \end actions-switch-colour-palette \procedure tv-palette-name() $:/temp/palette-colours \function tf.colour(name) [getindex] :else[[$:/config/DefaultColourMappings/]addsuffixget[text]] \end tf.colour \function colour(name) [tf.colour] \end colour \function color(name) [tf.colour] \end color \procedure colour-function-prefix() [tf.colour[ \end colour-function-prefix \procedure colour-function-suffix() ]] \end colour-function-suffix \widget $palette.preview(paletteTitle) \whitespace trim \function colour-inner-get-imported-palette(name,paletteTitle) [[palette-import@]addsuffix] :map[gethas[title]] +[!match[]] :else[get[palette-import]has[title]] :map[function[colour-inner-get-palette-entry],,] +[!match[]] \end colour-inner-get-imported-palette \function colour-inner-get-palette-entry(name,paletteTitle) [addprefix[@]addprefix] :map[getindex] +[!match[]] :else[getindex] :map[tf.colour-inner-transform-classic-palette-entry] :else[function[colour-inner-get-imported-palette],,] \end colour-inner-get-palette-entry \function tf.colour(name) [function[colour-inner-get-palette-entry],,] :else[[$:/config/DefaultColourMappings/]addsuffixget[text]] :map[subfilterjoin[ ]] \end tf.colour \function colour(name) [tf.colour] \end colour \function color(name) [tf.colour] \end color <$let color-scheme-filter={{{ [get[color-scheme]] :else[[light]] }}} scheme={{{ [subfilter] }}} > <$slot $name="ts-raw"/> \end $palette.preview \function tf.colour-inner-transform-classic-palette-entry(colour-result) [prefix[<>]removeprefix[<>]addprefixaddsuffix] :else[] \end tf.colour-inner-transform-classic-palette-entry \function tf.check-colour-contrast-subfunction() [function[colour],] [function[colour],] +[colour-contrast:DeltaPhi[]fixed[3]] \end tf.check-colour-contrast-subfunction \function tf.check-colour-contrast(paletteEntryA,paletteEntryB,threshold) [function[tf.check-colour-contrast-subfunction]compare:number:gtthen[ok]] :else[function[tf.check-colour-contrast-subfunction]addsuffix[: ]addsuffixaddsuffix[/]addsuffixaddsuffix[ contrast is too low]] \end tf.check-colour-contrast \function tf.interpolate-colours(paletteEntryA,paletteEntryB,weight) [function[colour],] [function[colour],] :apply[colour-interpolate:oklch<$1>,<$2>] \end tf.interpolate-colours \define box-shadow(shadow) `` -webkit-box-shadow: $shadow$; -moz-box-shadow: $shadow$; box-shadow: $shadow$; `` \end \define filter(filter) `` -webkit-filter: $filter$; -moz-filter: $filter$; filter: $filter$; `` \end \define transition(transition) `` -webkit-transition: $transition$; -moz-transition: $transition$; transition: $transition$; `` \end \define transform-origin(origin) `` -webkit-transform-origin: $origin$; -moz-transform-origin: $origin$; transform-origin: $origin$; `` \end \define background-linear-gradient(gradient) `` background-image: linear-gradient($gradient$); background-image: -o-linear-gradient($gradient$); background-image: -moz-linear-gradient($gradient$); background-image: -webkit-linear-gradient($gradient$); background-image: -ms-linear-gradient($gradient$); `` \end \define column-count(columns) `` -moz-column-count: $columns$; -webkit-column-count: $columns$; column-count: $columns$; `` \end \procedure datauri(title) <$macrocall $name="makedatauri" type={{{ [get[type]] }}} text={{{ [<title>get[text]] }}} _canonical_uri={{{ [<title>get[_canonical_uri]] }}}/> \end \procedure if-sidebar(text) <$reveal state="$:/state/sidebar" type="match" text="yes" default="yes"><<text>></$reveal> \end \procedure if-no-sidebar(text) <$reveal state="$:/state/sidebar" type="nomatch" text="yes" default="yes"><<text>></$reveal> \end \procedure if-background-attachment(text) <$reveal state="$:/themes/tiddlywiki/vanilla/settings/backgroundimage" type="nomatch" text=""><<text>></$reveal> \end