diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 2fea020..0b7eee2 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,14 +1,19 @@ \ No newline at end of file diff --git a/dist/.gitignore b/dist/.gitignore new file mode 100644 index 0000000..42c8198 --- /dev/null +++ b/dist/.gitignore @@ -0,0 +1,3 @@ +# TODO: Remove this before merging +*.css +*.css.map diff --git a/dist/_build.sh b/dist/_build.sh index 1bc7174..9de5459 100755 --- a/dist/_build.sh +++ b/dist/_build.sh @@ -1,40 +1,54 @@ #!/bin/bash # Maybe a Makefile would be better... -echo "Finding targets..." -targets=$(ls ../src/targets/*.less) -echo "Targets:" -echo "$targets" +echo "Finding mixins..." +mixins=$(ls ../src/mixins/**.less) +echo "Mixins:" +echo "$mixins" echo -echo "Finding themes..." -themes=$(ls ../src/themes/*.less) -echo "Themes:" -echo "$themes" +echo "Finding rules..." +rules=$(ls ../src/rules/*.less ../src/rules/**/*.less) +echo "Rules:" +echo "$rules" echo -for target in $targets +echo "Finding selectors..." +selectors=$(ls ../src/selectors/*.less ../src/selectors/**/*.less) +echo "Selectors:" +echo "$selectors" +echo + +for selector in $selectors do -for theme in $themes +for rule in $rules do -btarget=$(basename $target .less) -btheme=$(basename $theme .less) +bselector=$(basename "$selector" ".less") +brule=$(basename "$rule" ".less") # Dot notation is used so .module.css files can be generated -base="$btheme.$btarget" +base="$brule.$bselector" -echo "Building $base with the following rules:" +echo "Creating $base.less..." -tee "$base.less" << EOF -@import (less) "../src/utils/mixins.less"; -@import (less) "$target"; -@import (less) "$theme"; -EOF +echo "// Mixins" > "$base.less" +for mixin in $mixins +do +echo "@import (less) \"$mixin\";" >> "$base.less" +done +echo >> "$base.less" +echo "// Selector" >> "$base.less" +echo "@import (less) \"$selector\";" >> "$base.less" +echo >> "$base.less" + +echo "// Rule" >> "$base.less" +echo "@import (less) \"$rule\";" >> "$base.less" +echo >> "$base.less" + +echo "Compiling $base.css..." lessc "$base.less" "$base.css" -echo - done done diff --git a/dist/amber.apache.css b/dist/amber.apache.css deleted file mode 100644 index 2acb9f2..0000000 --- a/dist/amber.apache.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 39; - --bluelib-background-g: 33; - --bluelib-background-b: 33; - --bluelib-foreground-r: 225; - --bluelib-foreground-g: 80; - --bluelib-foreground-b: 11; - --bluelib-accent-r: 246; - --bluelib-accent-g: 233; - --bluelib-accent-b: 233; - --bluelib-link-r: 255; - --bluelib-link-g: 239; - --bluelib-link-b: 154; - --bluelib-broken-r: 218; - --bluelib-broken-g: 153; - --bluelib-broken-b: 246; - --bluelib-visited-r: 255; - --bluelib-visited-g: 187; - --bluelib-visited-b: 154; - --bluelib-download-r: 149; - --bluelib-download-g: 246; - --bluelib-download-b: 212; - --bluelib-red-r: 255; - --bluelib-red-g: 80; - --bluelib-red-b: 80; - --bluelib-orange-r: 255; - --bluelib-orange-g: 175; - --bluelib-orange-b: 80; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 80; - --bluelib-lime-r: 80; - --bluelib-lime-g: 255; - --bluelib-lime-b: 80; - --bluelib-cyan-r: 80; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 80; - --bluelib-blue-g: 80; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 80; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/amber.apache.less b/dist/amber.apache.less deleted file mode 100644 index 2951b2d..0000000 --- a/dist/amber.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/amber.less"; diff --git a/dist/amber.module.css b/dist/amber.module.css deleted file mode 100644 index 535cb0b..0000000 --- a/dist/amber.module.css +++ /dev/null @@ -1,48 +0,0 @@ -.bluelib { - --bluelib-background-r: 39; - --bluelib-background-g: 33; - --bluelib-background-b: 33; - --bluelib-foreground-r: 225; - --bluelib-foreground-g: 80; - --bluelib-foreground-b: 11; - --bluelib-accent-r: 246; - --bluelib-accent-g: 233; - --bluelib-accent-b: 233; - --bluelib-link-r: 255; - --bluelib-link-g: 239; - --bluelib-link-b: 154; - --bluelib-broken-r: 218; - --bluelib-broken-g: 153; - --bluelib-broken-b: 246; - --bluelib-visited-r: 255; - --bluelib-visited-g: 187; - --bluelib-visited-b: 154; - --bluelib-download-r: 149; - --bluelib-download-g: 246; - --bluelib-download-b: 212; - --bluelib-red-r: 255; - --bluelib-red-g: 80; - --bluelib-red-b: 80; - --bluelib-orange-r: 255; - --bluelib-orange-g: 175; - --bluelib-orange-b: 80; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 80; - --bluelib-lime-r: 80; - --bluelib-lime-g: 255; - --bluelib-lime-b: 80; - --bluelib-cyan-r: 80; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 80; - --bluelib-blue-g: 80; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 80; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/amber.module.less b/dist/amber.module.less deleted file mode 100644 index 0636882..0000000 --- a/dist/amber.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/amber.less"; diff --git a/dist/amber.root.css b/dist/amber.root.css deleted file mode 100644 index 2acb9f2..0000000 --- a/dist/amber.root.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 39; - --bluelib-background-g: 33; - --bluelib-background-b: 33; - --bluelib-foreground-r: 225; - --bluelib-foreground-g: 80; - --bluelib-foreground-b: 11; - --bluelib-accent-r: 246; - --bluelib-accent-g: 233; - --bluelib-accent-b: 233; - --bluelib-link-r: 255; - --bluelib-link-g: 239; - --bluelib-link-b: 154; - --bluelib-broken-r: 218; - --bluelib-broken-g: 153; - --bluelib-broken-b: 246; - --bluelib-visited-r: 255; - --bluelib-visited-g: 187; - --bluelib-visited-b: 154; - --bluelib-download-r: 149; - --bluelib-download-g: 246; - --bluelib-download-b: 212; - --bluelib-red-r: 255; - --bluelib-red-g: 80; - --bluelib-red-b: 80; - --bluelib-orange-r: 255; - --bluelib-orange-g: 175; - --bluelib-orange-b: 80; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 80; - --bluelib-lime-r: 80; - --bluelib-lime-g: 255; - --bluelib-lime-b: 80; - --bluelib-cyan-r: 80; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 80; - --bluelib-blue-g: 80; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 80; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/amber.root.less b/dist/amber.root.less deleted file mode 100644 index d6bfaeb..0000000 --- a/dist/amber.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/amber.less"; diff --git a/dist/base.module.less b/dist/base.module.less new file mode 100644 index 0000000..64850ba --- /dev/null +++ b/dist/base.module.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/module.less"; + +// Rule +@import (less) "../src/rules/base.less"; + diff --git a/dist/base.root.less b/dist/base.root.less new file mode 100644 index 0000000..f76abbf --- /dev/null +++ b/dist/base.root.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/root.less"; + +// Rule +@import (less) "../src/rules/base.less"; + diff --git a/dist/classic.module.less b/dist/classic.module.less new file mode 100644 index 0000000..f5cb986 --- /dev/null +++ b/dist/classic.module.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/module.less"; + +// Rule +@import (less) "../src/rules/classic.less"; + diff --git a/dist/classic.root.less b/dist/classic.root.less new file mode 100644 index 0000000..cca53a0 --- /dev/null +++ b/dist/classic.root.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/root.less"; + +// Rule +@import (less) "../src/rules/classic.less"; + diff --git a/dist/colors-royalblue.module.less b/dist/colors-royalblue.module.less new file mode 100644 index 0000000..7279a9b --- /dev/null +++ b/dist/colors-royalblue.module.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/module.less"; + +// Rule +@import (less) "../src/rules/colors/colors-royalblue.less"; + diff --git a/dist/colors-royalblue.root.less b/dist/colors-royalblue.root.less new file mode 100644 index 0000000..525a01c --- /dev/null +++ b/dist/colors-royalblue.root.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/root.less"; + +// Rule +@import (less) "../src/rules/colors/colors-royalblue.less"; + diff --git a/dist/fonts-fira-ghpages.module.less b/dist/fonts-fira-ghpages.module.less new file mode 100644 index 0000000..9982f86 --- /dev/null +++ b/dist/fonts-fira-ghpages.module.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/module.less"; + +// Rule +@import (less) "../src/rules/fonts/fonts-fira-ghpages.less"; + diff --git a/dist/fonts-fira-ghpages.root.less b/dist/fonts-fira-ghpages.root.less new file mode 100644 index 0000000..3fd7243 --- /dev/null +++ b/dist/fonts-fira-ghpages.root.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/root.less"; + +// Rule +@import (less) "../src/rules/fonts/fonts-fira-ghpages.less"; + diff --git a/dist/fun.module.less b/dist/fun.module.less new file mode 100644 index 0000000..7a661c7 --- /dev/null +++ b/dist/fun.module.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/module.less"; + +// Rule +@import (less) "../src/rules/fun.less"; + diff --git a/dist/fun.root.less b/dist/fun.root.less new file mode 100644 index 0000000..428d98b --- /dev/null +++ b/dist/fun.root.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/root.less"; + +// Rule +@import (less) "../src/rules/fun.less"; + diff --git a/dist/glass.module.less b/dist/glass.module.less new file mode 100644 index 0000000..fd7d168 --- /dev/null +++ b/dist/glass.module.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/module.less"; + +// Rule +@import (less) "../src/rules/glass.less"; + diff --git a/dist/glass.root.less b/dist/glass.root.less new file mode 100644 index 0000000..197f565 --- /dev/null +++ b/dist/glass.root.less @@ -0,0 +1,10 @@ +// Mixins +@import (less) "../src/mixins/fonts.less"; +@import (less) "../src/mixins/hsl.less"; + +// Selector +@import (less) "../src/selectors/root.less"; + +// Rule +@import (less) "../src/rules/glass.less"; + diff --git a/dist/hacker.apache.css b/dist/hacker.apache.css deleted file mode 100644 index 4a65ffa..0000000 --- a/dist/hacker.apache.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 4; - --bluelib-background-g: 4; - --bluelib-background-b: 4; - --bluelib-foreground-r: 0; - --bluelib-foreground-g: 255; - --bluelib-foreground-b: 0; - --bluelib-accent-r: 0; - --bluelib-accent-g: 255; - --bluelib-accent-b: 0; - --bluelib-link-r: 127; - --bluelib-link-g: 255; - --bluelib-link-b: 127; - --bluelib-broken-r: 255; - --bluelib-broken-g: 0; - --bluelib-broken-b: 0; - --bluelib-visited-r: 64; - --bluelib-visited-g: 180; - --bluelib-visited-b: 64; - --bluelib-download-r: 255; - --bluelib-download-g: 255; - --bluelib-download-b: 255; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/hacker.apache.less b/dist/hacker.apache.less deleted file mode 100644 index 96cebb3..0000000 --- a/dist/hacker.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/hacker.less"; diff --git a/dist/hacker.module.css b/dist/hacker.module.css deleted file mode 100644 index c24728c..0000000 --- a/dist/hacker.module.css +++ /dev/null @@ -1,48 +0,0 @@ -.bluelib { - --bluelib-background-r: 4; - --bluelib-background-g: 4; - --bluelib-background-b: 4; - --bluelib-foreground-r: 0; - --bluelib-foreground-g: 255; - --bluelib-foreground-b: 0; - --bluelib-accent-r: 0; - --bluelib-accent-g: 255; - --bluelib-accent-b: 0; - --bluelib-link-r: 127; - --bluelib-link-g: 255; - --bluelib-link-b: 127; - --bluelib-broken-r: 255; - --bluelib-broken-g: 0; - --bluelib-broken-b: 0; - --bluelib-visited-r: 64; - --bluelib-visited-g: 180; - --bluelib-visited-b: 64; - --bluelib-download-r: 255; - --bluelib-download-g: 255; - --bluelib-download-b: 255; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/hacker.module.less b/dist/hacker.module.less deleted file mode 100644 index edb19f7..0000000 --- a/dist/hacker.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/hacker.less"; diff --git a/dist/hacker.root.css b/dist/hacker.root.css deleted file mode 100644 index 4a65ffa..0000000 --- a/dist/hacker.root.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 4; - --bluelib-background-g: 4; - --bluelib-background-b: 4; - --bluelib-foreground-r: 0; - --bluelib-foreground-g: 255; - --bluelib-foreground-b: 0; - --bluelib-accent-r: 0; - --bluelib-accent-g: 255; - --bluelib-accent-b: 0; - --bluelib-link-r: 127; - --bluelib-link-g: 255; - --bluelib-link-b: 127; - --bluelib-broken-r: 255; - --bluelib-broken-g: 0; - --bluelib-broken-b: 0; - --bluelib-visited-r: 64; - --bluelib-visited-g: 180; - --bluelib-visited-b: 64; - --bluelib-download-r: 255; - --bluelib-download-g: 255; - --bluelib-download-b: 255; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/hacker.root.less b/dist/hacker.root.less deleted file mode 100644 index 68753c9..0000000 --- a/dist/hacker.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/hacker.less"; diff --git a/dist/paper.apache.css b/dist/paper.apache.css deleted file mode 100644 index 0cb6f35..0000000 --- a/dist/paper.apache.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 255; - --bluelib-background-g: 255; - --bluelib-background-b: 255; - --bluelib-foreground-r: 24; - --bluelib-foreground-g: 24; - --bluelib-foreground-b: 24; - --bluelib-accent-r: 24; - --bluelib-accent-g: 24; - --bluelib-accent-b: 24; - --bluelib-link-r: 0; - --bluelib-link-g: 147; - --bluelib-link-b: 147; - --bluelib-broken-r: 245; - --bluelib-broken-g: 111; - --bluelib-broken-b: 0; - --bluelib-visited-r: 9; - --bluelib-visited-g: 101; - --bluelib-visited-b: 156; - --bluelib-download-r: 0; - --bluelib-download-g: 164; - --bluelib-download-b: 106; - --bluelib-red-r: 200; - --bluelib-red-g: 0; - --bluelib-red-b: 0; - --bluelib-orange-r: 200; - --bluelib-orange-g: 165; - --bluelib-orange-b: 0; - --bluelib-yellow-r: 200; - --bluelib-yellow-g: 200; - --bluelib-yellow-b: 0; - --bluelib-lime-r: 0; - --bluelib-lime-g: 200; - --bluelib-lime-b: 0; - --bluelib-cyan-r: 0; - --bluelib-cyan-g: 200; - --bluelib-cyan-b: 200; - --bluelib-blue-r: 0; - --bluelib-blue-g: 0; - --bluelib-blue-b: 200; - --bluelib-magenta-r: 200; - --bluelib-magenta-g: 0; - --bluelib-magenta-b: 200; - --bluelib-gray-r: 128; - --bluelib-gray-g: 128; - --bluelib-gray-b: 128; - --bluelib-polarity: -1; -} diff --git a/dist/paper.apache.less b/dist/paper.apache.less deleted file mode 100644 index 740384d..0000000 --- a/dist/paper.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/paper.less"; diff --git a/dist/paper.module.css b/dist/paper.module.css deleted file mode 100644 index 8a60ec8..0000000 --- a/dist/paper.module.css +++ /dev/null @@ -1,48 +0,0 @@ -.bluelib { - --bluelib-background-r: 255; - --bluelib-background-g: 255; - --bluelib-background-b: 255; - --bluelib-foreground-r: 24; - --bluelib-foreground-g: 24; - --bluelib-foreground-b: 24; - --bluelib-accent-r: 24; - --bluelib-accent-g: 24; - --bluelib-accent-b: 24; - --bluelib-link-r: 0; - --bluelib-link-g: 147; - --bluelib-link-b: 147; - --bluelib-broken-r: 245; - --bluelib-broken-g: 111; - --bluelib-broken-b: 0; - --bluelib-visited-r: 9; - --bluelib-visited-g: 101; - --bluelib-visited-b: 156; - --bluelib-download-r: 0; - --bluelib-download-g: 164; - --bluelib-download-b: 106; - --bluelib-red-r: 200; - --bluelib-red-g: 0; - --bluelib-red-b: 0; - --bluelib-orange-r: 200; - --bluelib-orange-g: 165; - --bluelib-orange-b: 0; - --bluelib-yellow-r: 200; - --bluelib-yellow-g: 200; - --bluelib-yellow-b: 0; - --bluelib-lime-r: 0; - --bluelib-lime-g: 200; - --bluelib-lime-b: 0; - --bluelib-cyan-r: 0; - --bluelib-cyan-g: 200; - --bluelib-cyan-b: 200; - --bluelib-blue-r: 0; - --bluelib-blue-g: 0; - --bluelib-blue-b: 200; - --bluelib-magenta-r: 200; - --bluelib-magenta-g: 0; - --bluelib-magenta-b: 200; - --bluelib-gray-r: 128; - --bluelib-gray-g: 128; - --bluelib-gray-b: 128; - --bluelib-polarity: -1; -} diff --git a/dist/paper.module.less b/dist/paper.module.less deleted file mode 100644 index ff29e2f..0000000 --- a/dist/paper.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/paper.less"; diff --git a/dist/paper.root.css b/dist/paper.root.css deleted file mode 100644 index 0cb6f35..0000000 --- a/dist/paper.root.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 255; - --bluelib-background-g: 255; - --bluelib-background-b: 255; - --bluelib-foreground-r: 24; - --bluelib-foreground-g: 24; - --bluelib-foreground-b: 24; - --bluelib-accent-r: 24; - --bluelib-accent-g: 24; - --bluelib-accent-b: 24; - --bluelib-link-r: 0; - --bluelib-link-g: 147; - --bluelib-link-b: 147; - --bluelib-broken-r: 245; - --bluelib-broken-g: 111; - --bluelib-broken-b: 0; - --bluelib-visited-r: 9; - --bluelib-visited-g: 101; - --bluelib-visited-b: 156; - --bluelib-download-r: 0; - --bluelib-download-g: 164; - --bluelib-download-b: 106; - --bluelib-red-r: 200; - --bluelib-red-g: 0; - --bluelib-red-b: 0; - --bluelib-orange-r: 200; - --bluelib-orange-g: 165; - --bluelib-orange-b: 0; - --bluelib-yellow-r: 200; - --bluelib-yellow-g: 200; - --bluelib-yellow-b: 0; - --bluelib-lime-r: 0; - --bluelib-lime-g: 200; - --bluelib-lime-b: 0; - --bluelib-cyan-r: 0; - --bluelib-cyan-g: 200; - --bluelib-cyan-b: 200; - --bluelib-blue-r: 0; - --bluelib-blue-g: 0; - --bluelib-blue-b: 200; - --bluelib-magenta-r: 200; - --bluelib-magenta-g: 0; - --bluelib-magenta-b: 200; - --bluelib-gray-r: 128; - --bluelib-gray-g: 128; - --bluelib-gray-b: 128; - --bluelib-polarity: -1; -} diff --git a/dist/paper.root.less b/dist/paper.root.less deleted file mode 100644 index 1f00494..0000000 --- a/dist/paper.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/paper.less"; diff --git a/dist/pumpkin.apache.css b/dist/pumpkin.apache.css deleted file mode 100644 index 9ec5582..0000000 --- a/dist/pumpkin.apache.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 25; - --bluelib-background-g: 16; - --bluelib-background-b: 48; - --bluelib-foreground-r: 226; - --bluelib-foreground-g: 140; - --bluelib-foreground-b: 35; - --bluelib-accent-r: 254; - --bluelib-accent-g: 237; - --bluelib-accent-b: 180; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 12; - --bluelib-visited-g: 134; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/pumpkin.apache.less b/dist/pumpkin.apache.less deleted file mode 100644 index 925fb16..0000000 --- a/dist/pumpkin.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/pumpkin.less"; diff --git a/dist/pumpkin.module.css b/dist/pumpkin.module.css deleted file mode 100644 index 50f7949..0000000 --- a/dist/pumpkin.module.css +++ /dev/null @@ -1,48 +0,0 @@ -.bluelib { - --bluelib-background-r: 25; - --bluelib-background-g: 16; - --bluelib-background-b: 48; - --bluelib-foreground-r: 226; - --bluelib-foreground-g: 140; - --bluelib-foreground-b: 35; - --bluelib-accent-r: 254; - --bluelib-accent-g: 237; - --bluelib-accent-b: 180; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 12; - --bluelib-visited-g: 134; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/pumpkin.module.less b/dist/pumpkin.module.less deleted file mode 100644 index a9277d2..0000000 --- a/dist/pumpkin.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/pumpkin.less"; diff --git a/dist/pumpkin.root.css b/dist/pumpkin.root.css deleted file mode 100644 index 9ec5582..0000000 --- a/dist/pumpkin.root.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 25; - --bluelib-background-g: 16; - --bluelib-background-b: 48; - --bluelib-foreground-r: 226; - --bluelib-foreground-g: 140; - --bluelib-foreground-b: 35; - --bluelib-accent-r: 254; - --bluelib-accent-g: 237; - --bluelib-accent-b: 180; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 12; - --bluelib-visited-g: 134; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/pumpkin.root.less b/dist/pumpkin.root.less deleted file mode 100644 index 7f7be97..0000000 --- a/dist/pumpkin.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/pumpkin.less"; diff --git a/dist/royalblue.apache.css b/dist/royalblue.apache.css deleted file mode 100644 index 71924c7..0000000 --- a/dist/royalblue.apache.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 13; - --bluelib-background-g: 25; - --bluelib-background-b: 59; - --bluelib-foreground-r: 160; - --bluelib-foreground-g: 204; - --bluelib-foreground-b: 255; - --bluelib-accent-r: 255; - --bluelib-accent-g: 255; - --bluelib-accent-b: 255; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 12; - --bluelib-visited-g: 134; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/royalblue.apache.less b/dist/royalblue.apache.less deleted file mode 100644 index 24779af..0000000 --- a/dist/royalblue.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/royalblue.less"; diff --git a/dist/royalblue.module.css b/dist/royalblue.module.css deleted file mode 100644 index 7db119a..0000000 --- a/dist/royalblue.module.css +++ /dev/null @@ -1,48 +0,0 @@ -.bluelib { - --bluelib-background-r: 13; - --bluelib-background-g: 25; - --bluelib-background-b: 59; - --bluelib-foreground-r: 160; - --bluelib-foreground-g: 204; - --bluelib-foreground-b: 255; - --bluelib-accent-r: 255; - --bluelib-accent-g: 255; - --bluelib-accent-b: 255; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 12; - --bluelib-visited-g: 134; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/royalblue.module.less b/dist/royalblue.module.less deleted file mode 100644 index d604cf5..0000000 --- a/dist/royalblue.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/royalblue.less"; diff --git a/dist/royalblue.root.css b/dist/royalblue.root.css deleted file mode 100644 index 71924c7..0000000 --- a/dist/royalblue.root.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 13; - --bluelib-background-g: 25; - --bluelib-background-b: 59; - --bluelib-foreground-r: 160; - --bluelib-foreground-g: 204; - --bluelib-foreground-b: 255; - --bluelib-accent-r: 255; - --bluelib-accent-g: 255; - --bluelib-accent-b: 255; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 12; - --bluelib-visited-g: 134; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/royalblue.root.less b/dist/royalblue.root.less deleted file mode 100644 index c20dcaa..0000000 --- a/dist/royalblue.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/royalblue.less"; diff --git a/dist/royaldawn.apache.css b/dist/royaldawn.apache.css deleted file mode 100644 index 933731f..0000000 --- a/dist/royaldawn.apache.css +++ /dev/null @@ -1,51 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 117; - --bluelib-background-g: 55; - --bluelib-background-b: 90; - --bluelib-foreground-r: 254; - --bluelib-foreground-g: 237; - --bluelib-foreground-b: 180; - --bluelib-accent-r: 255; - --bluelib-accent-g: 255; - --bluelib-accent-b: 255; - --bluelib-link-r: 87; - --bluelib-link-g: 255; - --bluelib-link-b: 255; - --bluelib-broken-r: 255; - --bluelib-broken-g: 140; - --bluelib-broken-b: 87; - --bluelib-visited-r: 87; - --bluelib-visited-g: 135; - --bluelib-visited-b: 255; - --bluelib-download-r: 87; - --bluelib-download-g: 255; - --bluelib-download-b: 175; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; - background: linear-gradient(45deg, #de620e 0%, #75375a 50%, #3e257d 100%); - background-attachment: fixed; -} diff --git a/dist/royaldawn.apache.less b/dist/royaldawn.apache.less deleted file mode 100644 index 2332068..0000000 --- a/dist/royaldawn.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/royaldawn.less"; diff --git a/dist/royaldawn.module.css b/dist/royaldawn.module.css deleted file mode 100644 index 0133037..0000000 --- a/dist/royaldawn.module.css +++ /dev/null @@ -1,50 +0,0 @@ -.bluelib { - --bluelib-background-r: 117; - --bluelib-background-g: 55; - --bluelib-background-b: 90; - --bluelib-foreground-r: 254; - --bluelib-foreground-g: 237; - --bluelib-foreground-b: 180; - --bluelib-accent-r: 255; - --bluelib-accent-g: 255; - --bluelib-accent-b: 255; - --bluelib-link-r: 87; - --bluelib-link-g: 255; - --bluelib-link-b: 255; - --bluelib-broken-r: 255; - --bluelib-broken-g: 140; - --bluelib-broken-b: 87; - --bluelib-visited-r: 87; - --bluelib-visited-g: 135; - --bluelib-visited-b: 255; - --bluelib-download-r: 87; - --bluelib-download-g: 255; - --bluelib-download-b: 175; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; - background: linear-gradient(45deg, #de620e 0%, #75375a 50%, #3e257d 100%); - background-attachment: fixed; -} diff --git a/dist/royaldawn.module.less b/dist/royaldawn.module.less deleted file mode 100644 index 7921e23..0000000 --- a/dist/royaldawn.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/royaldawn.less"; diff --git a/dist/royaldawn.root.css b/dist/royaldawn.root.css deleted file mode 100644 index 933731f..0000000 --- a/dist/royaldawn.root.css +++ /dev/null @@ -1,51 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 117; - --bluelib-background-g: 55; - --bluelib-background-b: 90; - --bluelib-foreground-r: 254; - --bluelib-foreground-g: 237; - --bluelib-foreground-b: 180; - --bluelib-accent-r: 255; - --bluelib-accent-g: 255; - --bluelib-accent-b: 255; - --bluelib-link-r: 87; - --bluelib-link-g: 255; - --bluelib-link-b: 255; - --bluelib-broken-r: 255; - --bluelib-broken-g: 140; - --bluelib-broken-b: 87; - --bluelib-visited-r: 87; - --bluelib-visited-g: 135; - --bluelib-visited-b: 255; - --bluelib-download-r: 87; - --bluelib-download-g: 255; - --bluelib-download-b: 175; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; - background: linear-gradient(45deg, #de620e 0%, #75375a 50%, #3e257d 100%); - background-attachment: fixed; -} diff --git a/dist/royaldawn.root.less b/dist/royaldawn.root.less deleted file mode 100644 index d15e74f..0000000 --- a/dist/royaldawn.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/royaldawn.less"; diff --git a/dist/skeleton.apache.css b/dist/skeleton.apache.css deleted file mode 100644 index 8929114..0000000 --- a/dist/skeleton.apache.css +++ /dev/null @@ -1,2636 +0,0 @@ -body, -.bluelib { - --bluelib-title-family: sans-serif; - --bluelib-title-weight: 400; - --bluelib-text-family: sans-serif; - --bluelib-text-weight: 400; - --bluelib-code-family: monospace; - --bluelib-code-weight: 400; - background-color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - width: 100%; - height: 100%; - margin: 0; - --bluelib-color-r: var(--bluelib-foreground-r); - --bluelib-color-g: var(--bluelib-foreground-g); - --bluelib-color-b: var(--bluelib-foreground-b); - font-family: var(--bluelib-text-family); - font-weight: var(--bluelib-text-weight); -} -body, -.bluelib, -body *, -.bluelib * { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - scrollbar-color: rgb(var(--bluelib-foreground-r), var(--bluelib-foreground-g), var(--bluelib-foreground-b)) rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); -} -body, -.bluelib, -body *, -.bluelib *, -body::before, -.bluelib::before, -body *::before, -.bluelib *::before, -body::after, -.bluelib::after, -body *::after, -.bluelib *::after { - box-sizing: border-box; -} -body footer, -.bluelib footer, -body .page-footer, -.bluelib .page-footer { - margin-top: 1em; - text-align: center; - font-size: x-small; -} -body .layout, -.bluelib .layout { - display: grid; - justify-content: stretch; - align-items: stretch; -} -body .layout-fill, -.bluelib .layout-fill { - padding: 4px; - grid-template-areas: "single"; - grid-template-columns: 1fr; - grid-template-rows: 1fr; -} -body .layout-fill-single, -.bluelib .layout-fill-single { - grid-area: single; -} -body .layout-threecol, -.bluelib .layout-threecol { - padding: 4px; - grid-column-gap: 8px; -} -@media screen and (min-width: 1281px) { - body .layout-threecol, - .bluelib .layout-threecol { - grid-template-areas: "left center right"; - grid-template-columns: 1fr auto 1fr; - grid-template-rows: 1fr; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol, - .bluelib .layout-threecol { - grid-template-areas: "center center" "left right"; - grid-template-columns: 1fr 1fr; - grid-template-rows: auto auto; - max-width: 1024px; - margin-left: auto; - margin-right: auto; - } -} -body .layout-threecol-left, -.bluelib .layout-threecol-left { - grid-area: left; -} -@media screen and (min-width: 1281px) { - body .layout-threecol-left, - .bluelib .layout-threecol-left { - justify-self: end; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol-left, - .bluelib .layout-threecol-left { - justify-self: stretch; - } -} -body .layout-threecol-center, -.bluelib .layout-threecol-center { - grid-area: center; -} -@media screen and (min-width: 1281px) { - body .layout-threecol-center, - .bluelib .layout-threecol-center { - width: 1024px; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol-center, - .bluelib .layout-threecol-center { - max-width: 1024px; - } -} -body .layout-threecol-right, -.bluelib .layout-threecol-right { - grid-area: right; -} -@media screen and (min-width: 1281px) { - body .layout-threecol-right, - .bluelib .layout-threecol-right { - justify-self: start; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol-right, - .bluelib .layout-threecol-right { - justify-self: stretch; - } -} -body .panel, -.bluelib .panel { - margin: 8px 0; - padding: 8px; - border-radius: 4px; - width: 100%; - min-width: 312px; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body .panel > *:first-child, -.bluelib .panel > *:first-child { - margin-top: 0; -} -body .panel > *:last-child, -.bluelib .panel > *:last-child { - margin-bottom: 0; -} -body .panel-box, -.bluelib .panel-box { - border-width: 2px; - border-style: solid; -} -body .panel-dialog, -.bluelib .panel-dialog { - border-width: 0 0 0 2px; - border-style: solid; -} -body .panel-parenthesis, -.bluelib .panel-parenthesis { - border-width: 0; - font-size: smaller; -} -body .chapter, -.bluelib .chapter { - display: flex; - flex-wrap: wrap; - gap: 8px; - justify-content: stretch; - align-items: stretch; - margin: 8px 0; -} -body .chapter > *, -.bluelib .chapter > * { - flex-grow: 1; - flex-shrink: 0; -} -body .chapter > h1, -.bluelib .chapter > h1, -body .chapter > h2, -.bluelib .chapter > h2, -body .chapter > h3, -.bluelib .chapter > h3, -body .chapter > h4, -.bluelib .chapter > h4, -body .chapter > h5, -.bluelib .chapter > h5, -body .chapter > h6, -.bluelib .chapter > h6, -body .chapter > .heading, -.bluelib .chapter > .heading { - flex-basis: 100%; - margin-top: 0.2rem; - margin-bottom: 0.2rem; -} -body .chapter > h1:first-child, -.bluelib .chapter > h1:first-child, -body .chapter > h2:first-child, -.bluelib .chapter > h2:first-child, -body .chapter > h3:first-child, -.bluelib .chapter > h3:first-child, -body .chapter > h4:first-child, -.bluelib .chapter > h4:first-child, -body .chapter > h5:first-child, -.bluelib .chapter > h5:first-child, -body .chapter > h6:first-child, -.bluelib .chapter > h6:first-child, -body .chapter > .heading:first-child, -.bluelib .chapter > .heading:first-child { - margin-top: 1rem; -} -body .chapter > h1:last-child, -.bluelib .chapter > h1:last-child, -body .chapter > h2:last-child, -.bluelib .chapter > h2:last-child, -body .chapter > h3:last-child, -.bluelib .chapter > h3:last-child, -body .chapter > h4:last-child, -.bluelib .chapter > h4:last-child, -body .chapter > h5:last-child, -.bluelib .chapter > h5:last-child, -body .chapter > h6:last-child, -.bluelib .chapter > h6:last-child, -body .chapter > .heading:last-child, -.bluelib .chapter > .heading:last-child { - margin-bottom: 1rem; -} -body .chapter > .panel, -.bluelib .chapter > .panel { - margin: 0; - flex-basis: 0; -} -body .chapter-forcewrap, -.bluelib .chapter-forcewrap { - flex-grow: 0; - flex-shrink: 0; - flex-basis: 100%; - position: relative; -} -body hr, -.bluelib hr, -body .separator, -.bluelib .separator { - border-width: 1px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -body .separator-light, -.bluelib .separator-light { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body .separator-heavy, -.bluelib .separator-heavy { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); -} -body img, -.bluelib img, -body .image, -.bluelib .image { - display: block; - max-width: 100%; - margin-left: auto; - margin-right: auto; - object-fit: contain; -} -body .image-limit-half, -.bluelib .image-limit-half { - max-height: max(28.2vw, 50vh); -} -body .image-limit-quarter, -.bluelib .image-limit-quarter { - max-height: max(14.1vw, 25vh); -} -body figure, -.bluelib figure, -body .figure, -.bluelib .figure { - display: inline-flex; - flex-direction: column; - gap: 8px; - font-size: small; - font-style: italic; - text-align: center; - margin: 8px 0; - padding: 8px; - border-width: 2px; - border-style: solid; - border-radius: 4px; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); -} -body table, -.bluelib table, -body .table, -.bluelib .table { - display: table; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - border-width: 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 0 0 4px 4px; - border-collapse: collapse; - padding: 8px; - margin: 8px 0; -} -body table caption, -.bluelib table caption, -body .table-caption, -.bluelib .table-caption { - display: table-caption; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - padding: 4px; - font-style: italic; - font-size: small; -} -body table[disabled] caption, -.bluelib table[disabled] caption, -body table.status-disabled caption, -.bluelib table.status-disabled caption, -body .table[disabled] caption, -.bluelib .table[disabled] caption, -body .table.status-disabled caption, -.bluelib .table.status-disabled caption, -body table[disabled] .table-caption, -.bluelib table[disabled] .table-caption, -body table.status-disabled .table-caption, -.bluelib table.status-disabled .table-caption, -body .table[disabled] .table-caption, -.bluelib .table[disabled] .table-caption, -body .table.status-disabled .table-caption, -.bluelib .table.status-disabled .table-caption { - opacity: 50%; -} -body table caption, -.bluelib table caption, -body .table-caption-top, -.bluelib .table-caption-top { - caption-side: top; - border-width: 2px 2px 0 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 4px 4px 0 0; -} -body .table-caption-bottom, -.bluelib .table-caption-bottom { - caption-side: bottom; - border-width: 0 2px 2px 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 0 0 4px 4px; -} -body table thead, -.bluelib table thead, -body .table-header, -.bluelib .table-header { - display: table-header-group; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body table tbody, -.bluelib table tbody, -body .table-body, -.bluelib .table-body { - display: table-row-group; -} -body table tfoot, -.bluelib table tfoot, -body .table-footer, -.bluelib .table-footer { - display: table-footer-group; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body table tr, -.bluelib table tr, -body .table-row, -.bluelib .table-row { - display: table-row; - border: 1px solid rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body table td, -.bluelib table td, -body .table-data, -.bluelib .table-data, -body table th, -.bluelib table th, -body .table-head, -.bluelib .table-head { - display: table-cell; - border: 1px solid rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - padding: 8px; -} -body table th, -.bluelib table th, -body .table-head, -.bluelib .table-head { - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body .table-mark, -.bluelib .table-mark { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); -} -body li, -.bluelib li, -body .list-item, -.bluelib .list-item { - margin: 0.35rem 0; -} -body li::marker, -.bluelib li::marker, -body .list-item::marker, -.bluelib .list-item::marker { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -body dt, -.bluelib dt, -body .list-description-term, -.bluelib .list-description-term { - margin-top: 0.7rem; - margin-bottom: 0.35rem; - font-size: larger; -} -body dd, -.bluelib dd, -body .list-description-details, -.bluelib .list-description-details { - margin-top: 0.35rem; - margin-bottom: 0.7rem; - margin-left: 16px; -} -body [disabled], -.bluelib [disabled], -body .status-disabled, -.bluelib .status-disabled { - opacity: 50%; -} -body [disabled], -.bluelib [disabled], -body .status-disabled, -.bluelib .status-disabled, -body [disabled] *, -.bluelib [disabled] *, -body .status-disabled *, -.bluelib .status-disabled * { - cursor: not-allowed !important; -} -body .input-field, -.bluelib .input-field, -body input[type="color"], -.bluelib input[type="color"], -body input[type="date"], -.bluelib input[type="date"], -body input[type="datetime-local"], -.bluelib input[type="datetime-local"], -body input[type="email"], -.bluelib input[type="email"], -body input[type="file"], -.bluelib input[type="file"], -body input[type="image"], -.bluelib input[type="image"], -body input[type="month"], -.bluelib input[type="month"], -body input[type="number"], -.bluelib input[type="number"], -body input[type="password"], -.bluelib input[type="password"], -body input[type="search"], -.bluelib input[type="search"], -body input[type="tel"], -.bluelib input[type="tel"], -body input[type="text"], -.bluelib input[type="text"], -body input[type="time"], -.bluelib input[type="time"], -body input[type="url"], -.bluelib input[type="url"], -body input[type="week"], -.bluelib input[type="week"], -body textarea, -.bluelib textarea, -body .input-area, -.bluelib .input-area, -body select:not([multiple]), -.bluelib select:not([multiple]), -body .input-select, -.bluelib .input-select, -body select[multiple], -.bluelib select[multiple], -body .input-multiselect, -.bluelib .input-multiselect, -body button, -.bluelib button, -body input[type="submit"], -.bluelib input[type="submit"], -body input[type="reset"], -.bluelib input[type="reset"], -body .input-button, -.bluelib .input-button, -body input[type="checkbox"], -.bluelib input[type="checkbox"], -body .input-checkbox, -.bluelib .input-checkbox, -body input[type="radio"], -.bluelib input[type="radio"], -body .input-radio, -.bluelib .input-radio, -body .input, -.bluelib .input { - font: inherit; - width: 100%; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body .input-field[disabled], -.bluelib .input-field[disabled], -body input[type="color"][disabled], -.bluelib input[type="color"][disabled], -body input[type="date"][disabled], -.bluelib input[type="date"][disabled], -body input[type="datetime-local"][disabled], -.bluelib input[type="datetime-local"][disabled], -body input[type="email"][disabled], -.bluelib input[type="email"][disabled], -body input[type="file"][disabled], -.bluelib input[type="file"][disabled], -body input[type="image"][disabled], -.bluelib input[type="image"][disabled], -body input[type="month"][disabled], -.bluelib input[type="month"][disabled], -body input[type="number"][disabled], -.bluelib input[type="number"][disabled], -body input[type="password"][disabled], -.bluelib input[type="password"][disabled], -body input[type="search"][disabled], -.bluelib input[type="search"][disabled], -body input[type="tel"][disabled], -.bluelib input[type="tel"][disabled], -body input[type="text"][disabled], -.bluelib input[type="text"][disabled], -body input[type="time"][disabled], -.bluelib input[type="time"][disabled], -body input[type="url"][disabled], -.bluelib input[type="url"][disabled], -body input[type="week"][disabled], -.bluelib input[type="week"][disabled], -body textarea[disabled], -.bluelib textarea[disabled], -body .input-area[disabled], -.bluelib .input-area[disabled], -body select:not([multiple])[disabled], -.bluelib select:not([multiple])[disabled], -body .input-select[disabled], -.bluelib .input-select[disabled], -body select[multiple][disabled], -.bluelib select[multiple][disabled], -body .input-multiselect[disabled], -.bluelib .input-multiselect[disabled], -body button[disabled], -.bluelib button[disabled], -body input[type="submit"][disabled], -.bluelib input[type="submit"][disabled], -body input[type="reset"][disabled], -.bluelib input[type="reset"][disabled], -body .input-button[disabled], -.bluelib .input-button[disabled], -body input[type="checkbox"][disabled], -.bluelib input[type="checkbox"][disabled], -body .input-checkbox[disabled], -.bluelib .input-checkbox[disabled], -body input[type="radio"][disabled], -.bluelib input[type="radio"][disabled], -body .input-radio[disabled], -.bluelib .input-radio[disabled], -body .input[disabled], -.bluelib .input[disabled], -body .input-field .status-disabled, -.bluelib .input-field .status-disabled, -body input[type="color"] .status-disabled, -.bluelib input[type="color"] .status-disabled, -body input[type="date"] .status-disabled, -.bluelib input[type="date"] .status-disabled, -body input[type="datetime-local"] .status-disabled, -.bluelib input[type="datetime-local"] .status-disabled, -body input[type="email"] .status-disabled, -.bluelib input[type="email"] .status-disabled, -body input[type="file"] .status-disabled, -.bluelib input[type="file"] .status-disabled, -body input[type="image"] .status-disabled, -.bluelib input[type="image"] .status-disabled, -body input[type="month"] .status-disabled, -.bluelib input[type="month"] .status-disabled, -body input[type="number"] .status-disabled, -.bluelib input[type="number"] .status-disabled, -body input[type="password"] .status-disabled, -.bluelib input[type="password"] .status-disabled, -body input[type="search"] .status-disabled, -.bluelib input[type="search"] .status-disabled, -body input[type="tel"] .status-disabled, -.bluelib input[type="tel"] .status-disabled, -body input[type="text"] .status-disabled, -.bluelib input[type="text"] .status-disabled, -body input[type="time"] .status-disabled, -.bluelib input[type="time"] .status-disabled, -body input[type="url"] .status-disabled, -.bluelib input[type="url"] .status-disabled, -body input[type="week"] .status-disabled, -.bluelib input[type="week"] .status-disabled, -body textarea .status-disabled, -.bluelib textarea .status-disabled, -body .input-area .status-disabled, -.bluelib .input-area .status-disabled, -body select:not([multiple]) .status-disabled, -.bluelib select:not([multiple]) .status-disabled, -body .input-select .status-disabled, -.bluelib .input-select .status-disabled, -body select[multiple] .status-disabled, -.bluelib select[multiple] .status-disabled, -body .input-multiselect .status-disabled, -.bluelib .input-multiselect .status-disabled, -body button .status-disabled, -.bluelib button .status-disabled, -body input[type="submit"] .status-disabled, -.bluelib input[type="submit"] .status-disabled, -body input[type="reset"] .status-disabled, -.bluelib input[type="reset"] .status-disabled, -body .input-button .status-disabled, -.bluelib .input-button .status-disabled, -body input[type="checkbox"] .status-disabled, -.bluelib input[type="checkbox"] .status-disabled, -body .input-checkbox .status-disabled, -.bluelib .input-checkbox .status-disabled, -body input[type="radio"] .status-disabled, -.bluelib input[type="radio"] .status-disabled, -body .input-radio .status-disabled, -.bluelib .input-radio .status-disabled, -body .input .status-disabled, -.bluelib .input .status-disabled { - border-style: dashed; -} -body .input-field::placeholder, -.bluelib .input-field::placeholder, -body input[type="color"]::placeholder, -.bluelib input[type="color"]::placeholder, -body input[type="date"]::placeholder, -.bluelib input[type="date"]::placeholder, -body input[type="datetime-local"]::placeholder, -.bluelib input[type="datetime-local"]::placeholder, -body input[type="email"]::placeholder, -.bluelib input[type="email"]::placeholder, -body input[type="file"]::placeholder, -.bluelib input[type="file"]::placeholder, -body input[type="image"]::placeholder, -.bluelib input[type="image"]::placeholder, -body input[type="month"]::placeholder, -.bluelib input[type="month"]::placeholder, -body input[type="number"]::placeholder, -.bluelib input[type="number"]::placeholder, -body input[type="password"]::placeholder, -.bluelib input[type="password"]::placeholder, -body input[type="search"]::placeholder, -.bluelib input[type="search"]::placeholder, -body input[type="tel"]::placeholder, -.bluelib input[type="tel"]::placeholder, -body input[type="text"]::placeholder, -.bluelib input[type="text"]::placeholder, -body input[type="time"]::placeholder, -.bluelib input[type="time"]::placeholder, -body input[type="url"]::placeholder, -.bluelib input[type="url"]::placeholder, -body input[type="week"]::placeholder, -.bluelib input[type="week"]::placeholder, -body textarea::placeholder, -.bluelib textarea::placeholder, -body .input-area::placeholder, -.bluelib .input-area::placeholder, -body select:not([multiple])::placeholder, -.bluelib select:not([multiple])::placeholder, -body .input-select::placeholder, -.bluelib .input-select::placeholder, -body select[multiple]::placeholder, -.bluelib select[multiple]::placeholder, -body .input-multiselect::placeholder, -.bluelib .input-multiselect::placeholder, -body button::placeholder, -.bluelib button::placeholder, -body input[type="submit"]::placeholder, -.bluelib input[type="submit"]::placeholder, -body input[type="reset"]::placeholder, -.bluelib input[type="reset"]::placeholder, -body .input-button::placeholder, -.bluelib .input-button::placeholder, -body input[type="checkbox"]::placeholder, -.bluelib input[type="checkbox"]::placeholder, -body .input-checkbox::placeholder, -.bluelib .input-checkbox::placeholder, -body input[type="radio"]::placeholder, -.bluelib input[type="radio"]::placeholder, -body .input-radio::placeholder, -.bluelib .input-radio::placeholder, -body .input::placeholder, -.bluelib .input::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.41); - opacity: 1; -} -body .input-field:hover, -.bluelib .input-field:hover, -body input[type="color"]:hover, -.bluelib input[type="color"]:hover, -body input[type="date"]:hover, -.bluelib input[type="date"]:hover, -body input[type="datetime-local"]:hover, -.bluelib input[type="datetime-local"]:hover, -body input[type="email"]:hover, -.bluelib input[type="email"]:hover, -body input[type="file"]:hover, -.bluelib input[type="file"]:hover, -body input[type="image"]:hover, -.bluelib input[type="image"]:hover, -body input[type="month"]:hover, -.bluelib input[type="month"]:hover, -body input[type="number"]:hover, -.bluelib input[type="number"]:hover, -body input[type="password"]:hover, -.bluelib input[type="password"]:hover, -body input[type="search"]:hover, -.bluelib input[type="search"]:hover, -body input[type="tel"]:hover, -.bluelib input[type="tel"]:hover, -body input[type="text"]:hover, -.bluelib input[type="text"]:hover, -body input[type="time"]:hover, -.bluelib input[type="time"]:hover, -body input[type="url"]:hover, -.bluelib input[type="url"]:hover, -body input[type="week"]:hover, -.bluelib input[type="week"]:hover, -body textarea:hover, -.bluelib textarea:hover, -body .input-area:hover, -.bluelib .input-area:hover, -body select:not([multiple]):hover, -.bluelib select:not([multiple]):hover, -body .input-select:hover, -.bluelib .input-select:hover, -body select[multiple]:hover, -.bluelib select[multiple]:hover, -body .input-multiselect:hover, -.bluelib .input-multiselect:hover, -body button:hover, -.bluelib button:hover, -body input[type="submit"]:hover, -.bluelib input[type="submit"]:hover, -body input[type="reset"]:hover, -.bluelib input[type="reset"]:hover, -body .input-button:hover, -.bluelib .input-button:hover, -body input[type="checkbox"]:hover, -.bluelib input[type="checkbox"]:hover, -body .input-checkbox:hover, -.bluelib .input-checkbox:hover, -body input[type="radio"]:hover, -.bluelib input[type="radio"]:hover, -body .input-radio:hover, -.bluelib .input-radio:hover, -body .input:hover, -.bluelib .input:hover { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.6); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body .input-field:hover::placeholder, -.bluelib .input-field:hover::placeholder, -body input[type="color"]:hover::placeholder, -.bluelib input[type="color"]:hover::placeholder, -body input[type="date"]:hover::placeholder, -.bluelib input[type="date"]:hover::placeholder, -body input[type="datetime-local"]:hover::placeholder, -.bluelib input[type="datetime-local"]:hover::placeholder, -body input[type="email"]:hover::placeholder, -.bluelib input[type="email"]:hover::placeholder, -body input[type="file"]:hover::placeholder, -.bluelib input[type="file"]:hover::placeholder, -body input[type="image"]:hover::placeholder, -.bluelib input[type="image"]:hover::placeholder, -body input[type="month"]:hover::placeholder, -.bluelib input[type="month"]:hover::placeholder, -body input[type="number"]:hover::placeholder, -.bluelib input[type="number"]:hover::placeholder, -body input[type="password"]:hover::placeholder, -.bluelib input[type="password"]:hover::placeholder, -body input[type="search"]:hover::placeholder, -.bluelib input[type="search"]:hover::placeholder, -body input[type="tel"]:hover::placeholder, -.bluelib input[type="tel"]:hover::placeholder, -body input[type="text"]:hover::placeholder, -.bluelib input[type="text"]:hover::placeholder, -body input[type="time"]:hover::placeholder, -.bluelib input[type="time"]:hover::placeholder, -body input[type="url"]:hover::placeholder, -.bluelib input[type="url"]:hover::placeholder, -body input[type="week"]:hover::placeholder, -.bluelib input[type="week"]:hover::placeholder, -body textarea:hover::placeholder, -.bluelib textarea:hover::placeholder, -body .input-area:hover::placeholder, -.bluelib .input-area:hover::placeholder, -body select:not([multiple]):hover::placeholder, -.bluelib select:not([multiple]):hover::placeholder, -body .input-select:hover::placeholder, -.bluelib .input-select:hover::placeholder, -body select[multiple]:hover::placeholder, -.bluelib select[multiple]:hover::placeholder, -body .input-multiselect:hover::placeholder, -.bluelib .input-multiselect:hover::placeholder, -body button:hover::placeholder, -.bluelib button:hover::placeholder, -body input[type="submit"]:hover::placeholder, -.bluelib input[type="submit"]:hover::placeholder, -body input[type="reset"]:hover::placeholder, -.bluelib input[type="reset"]:hover::placeholder, -body .input-button:hover::placeholder, -.bluelib .input-button:hover::placeholder, -body input[type="checkbox"]:hover::placeholder, -.bluelib input[type="checkbox"]:hover::placeholder, -body .input-checkbox:hover::placeholder, -.bluelib .input-checkbox:hover::placeholder, -body input[type="radio"]:hover::placeholder, -.bluelib input[type="radio"]:hover::placeholder, -body .input-radio:hover::placeholder, -.bluelib .input-radio:hover::placeholder, -body .input:hover::placeholder, -.bluelib .input:hover::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.7); -} -body .input-field:focus, -.bluelib .input-field:focus, -body input[type="color"]:focus, -.bluelib input[type="color"]:focus, -body input[type="date"]:focus, -.bluelib input[type="date"]:focus, -body input[type="datetime-local"]:focus, -.bluelib input[type="datetime-local"]:focus, -body input[type="email"]:focus, -.bluelib input[type="email"]:focus, -body input[type="file"]:focus, -.bluelib input[type="file"]:focus, -body input[type="image"]:focus, -.bluelib input[type="image"]:focus, -body input[type="month"]:focus, -.bluelib input[type="month"]:focus, -body input[type="number"]:focus, -.bluelib input[type="number"]:focus, -body input[type="password"]:focus, -.bluelib input[type="password"]:focus, -body input[type="search"]:focus, -.bluelib input[type="search"]:focus, -body input[type="tel"]:focus, -.bluelib input[type="tel"]:focus, -body input[type="text"]:focus, -.bluelib input[type="text"]:focus, -body input[type="time"]:focus, -.bluelib input[type="time"]:focus, -body input[type="url"]:focus, -.bluelib input[type="url"]:focus, -body input[type="week"]:focus, -.bluelib input[type="week"]:focus, -body textarea:focus, -.bluelib textarea:focus, -body .input-area:focus, -.bluelib .input-area:focus, -body select:not([multiple]):focus, -.bluelib select:not([multiple]):focus, -body .input-select:focus, -.bluelib .input-select:focus, -body select[multiple]:focus, -.bluelib select[multiple]:focus, -body .input-multiselect:focus, -.bluelib .input-multiselect:focus, -body button:focus, -.bluelib button:focus, -body input[type="submit"]:focus, -.bluelib input[type="submit"]:focus, -body input[type="reset"]:focus, -.bluelib input[type="reset"]:focus, -body .input-button:focus, -.bluelib .input-button:focus, -body input[type="checkbox"]:focus, -.bluelib input[type="checkbox"]:focus, -body .input-checkbox:focus, -.bluelib .input-checkbox:focus, -body input[type="radio"]:focus, -.bluelib input[type="radio"]:focus, -body .input-radio:focus, -.bluelib .input-radio:focus, -body .input:focus, -.bluelib .input:focus { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); -} -body .input-field:focus::placeholder, -.bluelib .input-field:focus::placeholder, -body input[type="color"]:focus::placeholder, -.bluelib input[type="color"]:focus::placeholder, -body input[type="date"]:focus::placeholder, -.bluelib input[type="date"]:focus::placeholder, -body input[type="datetime-local"]:focus::placeholder, -.bluelib input[type="datetime-local"]:focus::placeholder, -body input[type="email"]:focus::placeholder, -.bluelib input[type="email"]:focus::placeholder, -body input[type="file"]:focus::placeholder, -.bluelib input[type="file"]:focus::placeholder, -body input[type="image"]:focus::placeholder, -.bluelib input[type="image"]:focus::placeholder, -body input[type="month"]:focus::placeholder, -.bluelib input[type="month"]:focus::placeholder, -body input[type="number"]:focus::placeholder, -.bluelib input[type="number"]:focus::placeholder, -body input[type="password"]:focus::placeholder, -.bluelib input[type="password"]:focus::placeholder, -body input[type="search"]:focus::placeholder, -.bluelib input[type="search"]:focus::placeholder, -body input[type="tel"]:focus::placeholder, -.bluelib input[type="tel"]:focus::placeholder, -body input[type="text"]:focus::placeholder, -.bluelib input[type="text"]:focus::placeholder, -body input[type="time"]:focus::placeholder, -.bluelib input[type="time"]:focus::placeholder, -body input[type="url"]:focus::placeholder, -.bluelib input[type="url"]:focus::placeholder, -body input[type="week"]:focus::placeholder, -.bluelib input[type="week"]:focus::placeholder, -body textarea:focus::placeholder, -.bluelib textarea:focus::placeholder, -body .input-area:focus::placeholder, -.bluelib .input-area:focus::placeholder, -body select:not([multiple]):focus::placeholder, -.bluelib select:not([multiple]):focus::placeholder, -body .input-select:focus::placeholder, -.bluelib .input-select:focus::placeholder, -body select[multiple]:focus::placeholder, -.bluelib select[multiple]:focus::placeholder, -body .input-multiselect:focus::placeholder, -.bluelib .input-multiselect:focus::placeholder, -body button:focus::placeholder, -.bluelib button:focus::placeholder, -body input[type="submit"]:focus::placeholder, -.bluelib input[type="submit"]:focus::placeholder, -body input[type="reset"]:focus::placeholder, -.bluelib input[type="reset"]:focus::placeholder, -body .input-button:focus::placeholder, -.bluelib .input-button:focus::placeholder, -body input[type="checkbox"]:focus::placeholder, -.bluelib input[type="checkbox"]:focus::placeholder, -body .input-checkbox:focus::placeholder, -.bluelib .input-checkbox:focus::placeholder, -body input[type="radio"]:focus::placeholder, -.bluelib input[type="radio"]:focus::placeholder, -body .input-radio:focus::placeholder, -.bluelib .input-radio:focus::placeholder, -body .input:focus::placeholder, -.bluelib .input:focus::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.7); -} -body .input-field[disabled]:hover, -.bluelib .input-field[disabled]:hover, -body input[type="color"][disabled]:hover, -.bluelib input[type="color"][disabled]:hover, -body input[type="date"][disabled]:hover, -.bluelib input[type="date"][disabled]:hover, -body input[type="datetime-local"][disabled]:hover, -.bluelib input[type="datetime-local"][disabled]:hover, -body input[type="email"][disabled]:hover, -.bluelib input[type="email"][disabled]:hover, -body input[type="file"][disabled]:hover, -.bluelib input[type="file"][disabled]:hover, -body input[type="image"][disabled]:hover, -.bluelib input[type="image"][disabled]:hover, -body input[type="month"][disabled]:hover, -.bluelib input[type="month"][disabled]:hover, -body input[type="number"][disabled]:hover, -.bluelib input[type="number"][disabled]:hover, -body input[type="password"][disabled]:hover, -.bluelib input[type="password"][disabled]:hover, -body input[type="search"][disabled]:hover, -.bluelib input[type="search"][disabled]:hover, -body input[type="tel"][disabled]:hover, -.bluelib input[type="tel"][disabled]:hover, -body input[type="text"][disabled]:hover, -.bluelib input[type="text"][disabled]:hover, -body input[type="time"][disabled]:hover, -.bluelib input[type="time"][disabled]:hover, -body input[type="url"][disabled]:hover, -.bluelib input[type="url"][disabled]:hover, -body input[type="week"][disabled]:hover, -.bluelib input[type="week"][disabled]:hover, -body textarea[disabled]:hover, -.bluelib textarea[disabled]:hover, -body .input-area[disabled]:hover, -.bluelib .input-area[disabled]:hover, -body select:not([multiple])[disabled]:hover, -.bluelib select:not([multiple])[disabled]:hover, -body .input-select[disabled]:hover, -.bluelib .input-select[disabled]:hover, -body select[multiple][disabled]:hover, -.bluelib select[multiple][disabled]:hover, -body .input-multiselect[disabled]:hover, -.bluelib .input-multiselect[disabled]:hover, -body button[disabled]:hover, -.bluelib button[disabled]:hover, -body input[type="submit"][disabled]:hover, -.bluelib input[type="submit"][disabled]:hover, -body input[type="reset"][disabled]:hover, -.bluelib input[type="reset"][disabled]:hover, -body .input-button[disabled]:hover, -.bluelib .input-button[disabled]:hover, -body input[type="checkbox"][disabled]:hover, -.bluelib input[type="checkbox"][disabled]:hover, -body .input-checkbox[disabled]:hover, -.bluelib .input-checkbox[disabled]:hover, -body input[type="radio"][disabled]:hover, -.bluelib input[type="radio"][disabled]:hover, -body .input-radio[disabled]:hover, -.bluelib .input-radio[disabled]:hover, -body .input[disabled]:hover, -.bluelib .input[disabled]:hover, -body .input-field .status-disabled:hover, -.bluelib .input-field .status-disabled:hover, -body input[type="color"] .status-disabled:hover, -.bluelib input[type="color"] .status-disabled:hover, -body input[type="date"] .status-disabled:hover, -.bluelib input[type="date"] .status-disabled:hover, -body input[type="datetime-local"] .status-disabled:hover, -.bluelib input[type="datetime-local"] .status-disabled:hover, -body input[type="email"] .status-disabled:hover, -.bluelib input[type="email"] .status-disabled:hover, -body input[type="file"] .status-disabled:hover, -.bluelib input[type="file"] .status-disabled:hover, -body input[type="image"] .status-disabled:hover, -.bluelib input[type="image"] .status-disabled:hover, -body input[type="month"] .status-disabled:hover, -.bluelib input[type="month"] .status-disabled:hover, -body input[type="number"] .status-disabled:hover, -.bluelib input[type="number"] .status-disabled:hover, -body input[type="password"] .status-disabled:hover, -.bluelib input[type="password"] .status-disabled:hover, -body input[type="search"] .status-disabled:hover, -.bluelib input[type="search"] .status-disabled:hover, -body input[type="tel"] .status-disabled:hover, -.bluelib input[type="tel"] .status-disabled:hover, -body input[type="text"] .status-disabled:hover, -.bluelib input[type="text"] .status-disabled:hover, -body input[type="time"] .status-disabled:hover, -.bluelib input[type="time"] .status-disabled:hover, -body input[type="url"] .status-disabled:hover, -.bluelib input[type="url"] .status-disabled:hover, -body input[type="week"] .status-disabled:hover, -.bluelib input[type="week"] .status-disabled:hover, -body textarea .status-disabled:hover, -.bluelib textarea .status-disabled:hover, -body .input-area .status-disabled:hover, -.bluelib .input-area .status-disabled:hover, -body select:not([multiple]) .status-disabled:hover, -.bluelib select:not([multiple]) .status-disabled:hover, -body .input-select .status-disabled:hover, -.bluelib .input-select .status-disabled:hover, -body select[multiple] .status-disabled:hover, -.bluelib select[multiple] .status-disabled:hover, -body .input-multiselect .status-disabled:hover, -.bluelib .input-multiselect .status-disabled:hover, -body button .status-disabled:hover, -.bluelib button .status-disabled:hover, -body input[type="submit"] .status-disabled:hover, -.bluelib input[type="submit"] .status-disabled:hover, -body input[type="reset"] .status-disabled:hover, -.bluelib input[type="reset"] .status-disabled:hover, -body .input-button .status-disabled:hover, -.bluelib .input-button .status-disabled:hover, -body input[type="checkbox"] .status-disabled:hover, -.bluelib input[type="checkbox"] .status-disabled:hover, -body .input-checkbox .status-disabled:hover, -.bluelib .input-checkbox .status-disabled:hover, -body input[type="radio"] .status-disabled:hover, -.bluelib input[type="radio"] .status-disabled:hover, -body .input-radio .status-disabled:hover, -.bluelib .input-radio .status-disabled:hover, -body .input .status-disabled:hover, -.bluelib .input .status-disabled:hover, -body .input-field[disabled]:focus, -.bluelib .input-field[disabled]:focus, -body input[type="color"][disabled]:focus, -.bluelib input[type="color"][disabled]:focus, -body input[type="date"][disabled]:focus, -.bluelib input[type="date"][disabled]:focus, -body input[type="datetime-local"][disabled]:focus, -.bluelib input[type="datetime-local"][disabled]:focus, -body input[type="email"][disabled]:focus, -.bluelib input[type="email"][disabled]:focus, -body input[type="file"][disabled]:focus, -.bluelib input[type="file"][disabled]:focus, -body input[type="image"][disabled]:focus, -.bluelib input[type="image"][disabled]:focus, -body input[type="month"][disabled]:focus, -.bluelib input[type="month"][disabled]:focus, -body input[type="number"][disabled]:focus, -.bluelib input[type="number"][disabled]:focus, -body input[type="password"][disabled]:focus, -.bluelib input[type="password"][disabled]:focus, -body input[type="search"][disabled]:focus, -.bluelib input[type="search"][disabled]:focus, -body input[type="tel"][disabled]:focus, -.bluelib input[type="tel"][disabled]:focus, -body input[type="text"][disabled]:focus, -.bluelib input[type="text"][disabled]:focus, -body input[type="time"][disabled]:focus, -.bluelib input[type="time"][disabled]:focus, -body input[type="url"][disabled]:focus, -.bluelib input[type="url"][disabled]:focus, -body input[type="week"][disabled]:focus, -.bluelib input[type="week"][disabled]:focus, -body textarea[disabled]:focus, -.bluelib textarea[disabled]:focus, -body .input-area[disabled]:focus, -.bluelib .input-area[disabled]:focus, -body select:not([multiple])[disabled]:focus, -.bluelib select:not([multiple])[disabled]:focus, -body .input-select[disabled]:focus, -.bluelib .input-select[disabled]:focus, -body select[multiple][disabled]:focus, -.bluelib select[multiple][disabled]:focus, -body .input-multiselect[disabled]:focus, -.bluelib .input-multiselect[disabled]:focus, -body button[disabled]:focus, -.bluelib button[disabled]:focus, -body input[type="submit"][disabled]:focus, -.bluelib input[type="submit"][disabled]:focus, -body input[type="reset"][disabled]:focus, -.bluelib input[type="reset"][disabled]:focus, -body .input-button[disabled]:focus, -.bluelib .input-button[disabled]:focus, -body input[type="checkbox"][disabled]:focus, -.bluelib input[type="checkbox"][disabled]:focus, -body .input-checkbox[disabled]:focus, -.bluelib .input-checkbox[disabled]:focus, -body input[type="radio"][disabled]:focus, -.bluelib input[type="radio"][disabled]:focus, -body .input-radio[disabled]:focus, -.bluelib .input-radio[disabled]:focus, -body .input[disabled]:focus, -.bluelib .input[disabled]:focus, -body .input-field .status-disabled:focus, -.bluelib .input-field .status-disabled:focus, -body input[type="color"] .status-disabled:focus, -.bluelib input[type="color"] .status-disabled:focus, -body input[type="date"] .status-disabled:focus, -.bluelib input[type="date"] .status-disabled:focus, -body input[type="datetime-local"] .status-disabled:focus, -.bluelib input[type="datetime-local"] .status-disabled:focus, -body input[type="email"] .status-disabled:focus, -.bluelib input[type="email"] .status-disabled:focus, -body input[type="file"] .status-disabled:focus, -.bluelib input[type="file"] .status-disabled:focus, -body input[type="image"] .status-disabled:focus, -.bluelib input[type="image"] .status-disabled:focus, -body input[type="month"] .status-disabled:focus, -.bluelib input[type="month"] .status-disabled:focus, -body input[type="number"] .status-disabled:focus, -.bluelib input[type="number"] .status-disabled:focus, -body input[type="password"] .status-disabled:focus, -.bluelib input[type="password"] .status-disabled:focus, -body input[type="search"] .status-disabled:focus, -.bluelib input[type="search"] .status-disabled:focus, -body input[type="tel"] .status-disabled:focus, -.bluelib input[type="tel"] .status-disabled:focus, -body input[type="text"] .status-disabled:focus, -.bluelib input[type="text"] .status-disabled:focus, -body input[type="time"] .status-disabled:focus, -.bluelib input[type="time"] .status-disabled:focus, -body input[type="url"] .status-disabled:focus, -.bluelib input[type="url"] .status-disabled:focus, -body input[type="week"] .status-disabled:focus, -.bluelib input[type="week"] .status-disabled:focus, -body textarea .status-disabled:focus, -.bluelib textarea .status-disabled:focus, -body .input-area .status-disabled:focus, -.bluelib .input-area .status-disabled:focus, -body select:not([multiple]) .status-disabled:focus, -.bluelib select:not([multiple]) .status-disabled:focus, -body .input-select .status-disabled:focus, -.bluelib .input-select .status-disabled:focus, -body select[multiple] .status-disabled:focus, -.bluelib select[multiple] .status-disabled:focus, -body .input-multiselect .status-disabled:focus, -.bluelib .input-multiselect .status-disabled:focus, -body button .status-disabled:focus, -.bluelib button .status-disabled:focus, -body input[type="submit"] .status-disabled:focus, -.bluelib input[type="submit"] .status-disabled:focus, -body input[type="reset"] .status-disabled:focus, -.bluelib input[type="reset"] .status-disabled:focus, -body .input-button .status-disabled:focus, -.bluelib .input-button .status-disabled:focus, -body input[type="checkbox"] .status-disabled:focus, -.bluelib input[type="checkbox"] .status-disabled:focus, -body .input-checkbox .status-disabled:focus, -.bluelib .input-checkbox .status-disabled:focus, -body input[type="radio"] .status-disabled:focus, -.bluelib input[type="radio"] .status-disabled:focus, -body .input-radio .status-disabled:focus, -.bluelib .input-radio .status-disabled:focus, -body .input .status-disabled:focus, -.bluelib .input .status-disabled:focus { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body .input-field[disabled]:hover::placeholder, -.bluelib .input-field[disabled]:hover::placeholder, -body input[type="color"][disabled]:hover::placeholder, -.bluelib input[type="color"][disabled]:hover::placeholder, -body input[type="date"][disabled]:hover::placeholder, -.bluelib input[type="date"][disabled]:hover::placeholder, -body input[type="datetime-local"][disabled]:hover::placeholder, -.bluelib input[type="datetime-local"][disabled]:hover::placeholder, -body input[type="email"][disabled]:hover::placeholder, -.bluelib input[type="email"][disabled]:hover::placeholder, -body input[type="file"][disabled]:hover::placeholder, -.bluelib input[type="file"][disabled]:hover::placeholder, -body input[type="image"][disabled]:hover::placeholder, -.bluelib input[type="image"][disabled]:hover::placeholder, -body input[type="month"][disabled]:hover::placeholder, -.bluelib input[type="month"][disabled]:hover::placeholder, -body input[type="number"][disabled]:hover::placeholder, -.bluelib input[type="number"][disabled]:hover::placeholder, -body input[type="password"][disabled]:hover::placeholder, -.bluelib input[type="password"][disabled]:hover::placeholder, -body input[type="search"][disabled]:hover::placeholder, -.bluelib input[type="search"][disabled]:hover::placeholder, -body input[type="tel"][disabled]:hover::placeholder, -.bluelib input[type="tel"][disabled]:hover::placeholder, -body input[type="text"][disabled]:hover::placeholder, -.bluelib input[type="text"][disabled]:hover::placeholder, -body input[type="time"][disabled]:hover::placeholder, -.bluelib input[type="time"][disabled]:hover::placeholder, -body input[type="url"][disabled]:hover::placeholder, -.bluelib input[type="url"][disabled]:hover::placeholder, -body input[type="week"][disabled]:hover::placeholder, -.bluelib input[type="week"][disabled]:hover::placeholder, -body textarea[disabled]:hover::placeholder, -.bluelib textarea[disabled]:hover::placeholder, -body .input-area[disabled]:hover::placeholder, -.bluelib .input-area[disabled]:hover::placeholder, -body select:not([multiple])[disabled]:hover::placeholder, -.bluelib select:not([multiple])[disabled]:hover::placeholder, -body .input-select[disabled]:hover::placeholder, -.bluelib .input-select[disabled]:hover::placeholder, -body select[multiple][disabled]:hover::placeholder, -.bluelib select[multiple][disabled]:hover::placeholder, -body .input-multiselect[disabled]:hover::placeholder, -.bluelib .input-multiselect[disabled]:hover::placeholder, -body button[disabled]:hover::placeholder, -.bluelib button[disabled]:hover::placeholder, -body input[type="submit"][disabled]:hover::placeholder, -.bluelib input[type="submit"][disabled]:hover::placeholder, -body input[type="reset"][disabled]:hover::placeholder, -.bluelib input[type="reset"][disabled]:hover::placeholder, -body .input-button[disabled]:hover::placeholder, -.bluelib .input-button[disabled]:hover::placeholder, -body input[type="checkbox"][disabled]:hover::placeholder, -.bluelib input[type="checkbox"][disabled]:hover::placeholder, -body .input-checkbox[disabled]:hover::placeholder, -.bluelib .input-checkbox[disabled]:hover::placeholder, -body input[type="radio"][disabled]:hover::placeholder, -.bluelib input[type="radio"][disabled]:hover::placeholder, -body .input-radio[disabled]:hover::placeholder, -.bluelib .input-radio[disabled]:hover::placeholder, -body .input[disabled]:hover::placeholder, -.bluelib .input[disabled]:hover::placeholder, -body .input-field .status-disabled:hover::placeholder, -.bluelib .input-field .status-disabled:hover::placeholder, -body input[type="color"] .status-disabled:hover::placeholder, -.bluelib input[type="color"] .status-disabled:hover::placeholder, -body input[type="date"] .status-disabled:hover::placeholder, -.bluelib input[type="date"] .status-disabled:hover::placeholder, -body input[type="datetime-local"] .status-disabled:hover::placeholder, -.bluelib input[type="datetime-local"] .status-disabled:hover::placeholder, -body input[type="email"] .status-disabled:hover::placeholder, -.bluelib input[type="email"] .status-disabled:hover::placeholder, -body input[type="file"] .status-disabled:hover::placeholder, -.bluelib input[type="file"] .status-disabled:hover::placeholder, -body input[type="image"] .status-disabled:hover::placeholder, -.bluelib input[type="image"] .status-disabled:hover::placeholder, -body input[type="month"] .status-disabled:hover::placeholder, -.bluelib input[type="month"] .status-disabled:hover::placeholder, -body input[type="number"] .status-disabled:hover::placeholder, -.bluelib input[type="number"] .status-disabled:hover::placeholder, -body input[type="password"] .status-disabled:hover::placeholder, -.bluelib input[type="password"] .status-disabled:hover::placeholder, -body input[type="search"] .status-disabled:hover::placeholder, -.bluelib input[type="search"] .status-disabled:hover::placeholder, -body input[type="tel"] .status-disabled:hover::placeholder, -.bluelib input[type="tel"] .status-disabled:hover::placeholder, -body input[type="text"] .status-disabled:hover::placeholder, -.bluelib input[type="text"] .status-disabled:hover::placeholder, -body input[type="time"] .status-disabled:hover::placeholder, -.bluelib input[type="time"] .status-disabled:hover::placeholder, -body input[type="url"] .status-disabled:hover::placeholder, -.bluelib input[type="url"] .status-disabled:hover::placeholder, -body input[type="week"] .status-disabled:hover::placeholder, -.bluelib input[type="week"] .status-disabled:hover::placeholder, -body textarea .status-disabled:hover::placeholder, -.bluelib textarea .status-disabled:hover::placeholder, -body .input-area .status-disabled:hover::placeholder, -.bluelib .input-area .status-disabled:hover::placeholder, -body select:not([multiple]) .status-disabled:hover::placeholder, -.bluelib select:not([multiple]) .status-disabled:hover::placeholder, -body .input-select .status-disabled:hover::placeholder, -.bluelib .input-select .status-disabled:hover::placeholder, -body select[multiple] .status-disabled:hover::placeholder, -.bluelib select[multiple] .status-disabled:hover::placeholder, -body .input-multiselect .status-disabled:hover::placeholder, -.bluelib .input-multiselect .status-disabled:hover::placeholder, -body button .status-disabled:hover::placeholder, -.bluelib button .status-disabled:hover::placeholder, -body input[type="submit"] .status-disabled:hover::placeholder, -.bluelib input[type="submit"] .status-disabled:hover::placeholder, -body input[type="reset"] .status-disabled:hover::placeholder, -.bluelib input[type="reset"] .status-disabled:hover::placeholder, -body .input-button .status-disabled:hover::placeholder, -.bluelib .input-button .status-disabled:hover::placeholder, -body input[type="checkbox"] .status-disabled:hover::placeholder, -.bluelib input[type="checkbox"] .status-disabled:hover::placeholder, -body .input-checkbox .status-disabled:hover::placeholder, -.bluelib .input-checkbox .status-disabled:hover::placeholder, -body input[type="radio"] .status-disabled:hover::placeholder, -.bluelib input[type="radio"] .status-disabled:hover::placeholder, -body .input-radio .status-disabled:hover::placeholder, -.bluelib .input-radio .status-disabled:hover::placeholder, -body .input .status-disabled:hover::placeholder, -.bluelib .input .status-disabled:hover::placeholder, -body .input-field[disabled]:focus::placeholder, -.bluelib .input-field[disabled]:focus::placeholder, -body input[type="color"][disabled]:focus::placeholder, -.bluelib input[type="color"][disabled]:focus::placeholder, -body input[type="date"][disabled]:focus::placeholder, -.bluelib input[type="date"][disabled]:focus::placeholder, -body input[type="datetime-local"][disabled]:focus::placeholder, -.bluelib input[type="datetime-local"][disabled]:focus::placeholder, -body input[type="email"][disabled]:focus::placeholder, -.bluelib input[type="email"][disabled]:focus::placeholder, -body input[type="file"][disabled]:focus::placeholder, -.bluelib input[type="file"][disabled]:focus::placeholder, -body input[type="image"][disabled]:focus::placeholder, -.bluelib input[type="image"][disabled]:focus::placeholder, -body input[type="month"][disabled]:focus::placeholder, -.bluelib input[type="month"][disabled]:focus::placeholder, -body input[type="number"][disabled]:focus::placeholder, -.bluelib input[type="number"][disabled]:focus::placeholder, -body input[type="password"][disabled]:focus::placeholder, -.bluelib input[type="password"][disabled]:focus::placeholder, -body input[type="search"][disabled]:focus::placeholder, -.bluelib input[type="search"][disabled]:focus::placeholder, -body input[type="tel"][disabled]:focus::placeholder, -.bluelib input[type="tel"][disabled]:focus::placeholder, -body input[type="text"][disabled]:focus::placeholder, -.bluelib input[type="text"][disabled]:focus::placeholder, -body input[type="time"][disabled]:focus::placeholder, -.bluelib input[type="time"][disabled]:focus::placeholder, -body input[type="url"][disabled]:focus::placeholder, -.bluelib input[type="url"][disabled]:focus::placeholder, -body input[type="week"][disabled]:focus::placeholder, -.bluelib input[type="week"][disabled]:focus::placeholder, -body textarea[disabled]:focus::placeholder, -.bluelib textarea[disabled]:focus::placeholder, -body .input-area[disabled]:focus::placeholder, -.bluelib .input-area[disabled]:focus::placeholder, -body select:not([multiple])[disabled]:focus::placeholder, -.bluelib select:not([multiple])[disabled]:focus::placeholder, -body .input-select[disabled]:focus::placeholder, -.bluelib .input-select[disabled]:focus::placeholder, -body select[multiple][disabled]:focus::placeholder, -.bluelib select[multiple][disabled]:focus::placeholder, -body .input-multiselect[disabled]:focus::placeholder, -.bluelib .input-multiselect[disabled]:focus::placeholder, -body button[disabled]:focus::placeholder, -.bluelib button[disabled]:focus::placeholder, -body input[type="submit"][disabled]:focus::placeholder, -.bluelib input[type="submit"][disabled]:focus::placeholder, -body input[type="reset"][disabled]:focus::placeholder, -.bluelib input[type="reset"][disabled]:focus::placeholder, -body .input-button[disabled]:focus::placeholder, -.bluelib .input-button[disabled]:focus::placeholder, -body input[type="checkbox"][disabled]:focus::placeholder, -.bluelib input[type="checkbox"][disabled]:focus::placeholder, -body .input-checkbox[disabled]:focus::placeholder, -.bluelib .input-checkbox[disabled]:focus::placeholder, -body input[type="radio"][disabled]:focus::placeholder, -.bluelib input[type="radio"][disabled]:focus::placeholder, -body .input-radio[disabled]:focus::placeholder, -.bluelib .input-radio[disabled]:focus::placeholder, -body .input[disabled]:focus::placeholder, -.bluelib .input[disabled]:focus::placeholder, -body .input-field .status-disabled:focus::placeholder, -.bluelib .input-field .status-disabled:focus::placeholder, -body input[type="color"] .status-disabled:focus::placeholder, -.bluelib input[type="color"] .status-disabled:focus::placeholder, -body input[type="date"] .status-disabled:focus::placeholder, -.bluelib input[type="date"] .status-disabled:focus::placeholder, -body input[type="datetime-local"] .status-disabled:focus::placeholder, -.bluelib input[type="datetime-local"] .status-disabled:focus::placeholder, -body input[type="email"] .status-disabled:focus::placeholder, -.bluelib input[type="email"] .status-disabled:focus::placeholder, -body input[type="file"] .status-disabled:focus::placeholder, -.bluelib input[type="file"] .status-disabled:focus::placeholder, -body input[type="image"] .status-disabled:focus::placeholder, -.bluelib input[type="image"] .status-disabled:focus::placeholder, -body input[type="month"] .status-disabled:focus::placeholder, -.bluelib input[type="month"] .status-disabled:focus::placeholder, -body input[type="number"] .status-disabled:focus::placeholder, -.bluelib input[type="number"] .status-disabled:focus::placeholder, -body input[type="password"] .status-disabled:focus::placeholder, -.bluelib input[type="password"] .status-disabled:focus::placeholder, -body input[type="search"] .status-disabled:focus::placeholder, -.bluelib input[type="search"] .status-disabled:focus::placeholder, -body input[type="tel"] .status-disabled:focus::placeholder, -.bluelib input[type="tel"] .status-disabled:focus::placeholder, -body input[type="text"] .status-disabled:focus::placeholder, -.bluelib input[type="text"] .status-disabled:focus::placeholder, -body input[type="time"] .status-disabled:focus::placeholder, -.bluelib input[type="time"] .status-disabled:focus::placeholder, -body input[type="url"] .status-disabled:focus::placeholder, -.bluelib input[type="url"] .status-disabled:focus::placeholder, -body input[type="week"] .status-disabled:focus::placeholder, -.bluelib input[type="week"] .status-disabled:focus::placeholder, -body textarea .status-disabled:focus::placeholder, -.bluelib textarea .status-disabled:focus::placeholder, -body .input-area .status-disabled:focus::placeholder, -.bluelib .input-area .status-disabled:focus::placeholder, -body select:not([multiple]) .status-disabled:focus::placeholder, -.bluelib select:not([multiple]) .status-disabled:focus::placeholder, -body .input-select .status-disabled:focus::placeholder, -.bluelib .input-select .status-disabled:focus::placeholder, -body select[multiple] .status-disabled:focus::placeholder, -.bluelib select[multiple] .status-disabled:focus::placeholder, -body .input-multiselect .status-disabled:focus::placeholder, -.bluelib .input-multiselect .status-disabled:focus::placeholder, -body button .status-disabled:focus::placeholder, -.bluelib button .status-disabled:focus::placeholder, -body input[type="submit"] .status-disabled:focus::placeholder, -.bluelib input[type="submit"] .status-disabled:focus::placeholder, -body input[type="reset"] .status-disabled:focus::placeholder, -.bluelib input[type="reset"] .status-disabled:focus::placeholder, -body .input-button .status-disabled:focus::placeholder, -.bluelib .input-button .status-disabled:focus::placeholder, -body input[type="checkbox"] .status-disabled:focus::placeholder, -.bluelib input[type="checkbox"] .status-disabled:focus::placeholder, -body .input-checkbox .status-disabled:focus::placeholder, -.bluelib .input-checkbox .status-disabled:focus::placeholder, -body input[type="radio"] .status-disabled:focus::placeholder, -.bluelib input[type="radio"] .status-disabled:focus::placeholder, -body .input-radio .status-disabled:focus::placeholder, -.bluelib .input-radio .status-disabled:focus::placeholder, -body .input .status-disabled:focus::placeholder, -.bluelib .input .status-disabled:focus::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.41); -} -body .input-field:optional, -.bluelib .input-field:optional, -body input[type="color"]:optional, -.bluelib input[type="color"]:optional, -body input[type="date"]:optional, -.bluelib input[type="date"]:optional, -body input[type="datetime-local"]:optional, -.bluelib input[type="datetime-local"]:optional, -body input[type="email"]:optional, -.bluelib input[type="email"]:optional, -body input[type="file"]:optional, -.bluelib input[type="file"]:optional, -body input[type="image"]:optional, -.bluelib input[type="image"]:optional, -body input[type="month"]:optional, -.bluelib input[type="month"]:optional, -body input[type="number"]:optional, -.bluelib input[type="number"]:optional, -body input[type="password"]:optional, -.bluelib input[type="password"]:optional, -body input[type="search"]:optional, -.bluelib input[type="search"]:optional, -body input[type="tel"]:optional, -.bluelib input[type="tel"]:optional, -body input[type="text"]:optional, -.bluelib input[type="text"]:optional, -body input[type="time"]:optional, -.bluelib input[type="time"]:optional, -body input[type="url"]:optional, -.bluelib input[type="url"]:optional, -body input[type="week"]:optional, -.bluelib input[type="week"]:optional, -body textarea:optional, -.bluelib textarea:optional, -body .input-area:optional, -.bluelib .input-area:optional, -body select:not([multiple]):optional, -.bluelib select:not([multiple]):optional, -body .input-select:optional, -.bluelib .input-select:optional, -body select[multiple]:optional, -.bluelib select[multiple]:optional, -body .input-multiselect:optional, -.bluelib .input-multiselect:optional, -body button:optional, -.bluelib button:optional, -body input[type="submit"]:optional, -.bluelib input[type="submit"]:optional, -body input[type="reset"]:optional, -.bluelib input[type="reset"]:optional, -body .input-button:optional, -.bluelib .input-button:optional, -body input[type="checkbox"]:optional, -.bluelib input[type="checkbox"]:optional, -body .input-checkbox:optional, -.bluelib .input-checkbox:optional, -body input[type="radio"]:optional, -.bluelib input[type="radio"]:optional, -body .input-radio:optional, -.bluelib .input-radio:optional, -body .input:optional, -.bluelib .input:optional, -body .input-field:optional::placeholder, -.bluelib .input-field:optional::placeholder, -body input[type="color"]:optional::placeholder, -.bluelib input[type="color"]:optional::placeholder, -body input[type="date"]:optional::placeholder, -.bluelib input[type="date"]:optional::placeholder, -body input[type="datetime-local"]:optional::placeholder, -.bluelib input[type="datetime-local"]:optional::placeholder, -body input[type="email"]:optional::placeholder, -.bluelib input[type="email"]:optional::placeholder, -body input[type="file"]:optional::placeholder, -.bluelib input[type="file"]:optional::placeholder, -body input[type="image"]:optional::placeholder, -.bluelib input[type="image"]:optional::placeholder, -body input[type="month"]:optional::placeholder, -.bluelib input[type="month"]:optional::placeholder, -body input[type="number"]:optional::placeholder, -.bluelib input[type="number"]:optional::placeholder, -body input[type="password"]:optional::placeholder, -.bluelib input[type="password"]:optional::placeholder, -body input[type="search"]:optional::placeholder, -.bluelib input[type="search"]:optional::placeholder, -body input[type="tel"]:optional::placeholder, -.bluelib input[type="tel"]:optional::placeholder, -body input[type="text"]:optional::placeholder, -.bluelib input[type="text"]:optional::placeholder, -body input[type="time"]:optional::placeholder, -.bluelib input[type="time"]:optional::placeholder, -body input[type="url"]:optional::placeholder, -.bluelib input[type="url"]:optional::placeholder, -body input[type="week"]:optional::placeholder, -.bluelib input[type="week"]:optional::placeholder, -body textarea:optional::placeholder, -.bluelib textarea:optional::placeholder, -body .input-area:optional::placeholder, -.bluelib .input-area:optional::placeholder, -body select:not([multiple]):optional::placeholder, -.bluelib select:not([multiple]):optional::placeholder, -body .input-select:optional::placeholder, -.bluelib .input-select:optional::placeholder, -body select[multiple]:optional::placeholder, -.bluelib select[multiple]:optional::placeholder, -body .input-multiselect:optional::placeholder, -.bluelib .input-multiselect:optional::placeholder, -body button:optional::placeholder, -.bluelib button:optional::placeholder, -body input[type="submit"]:optional::placeholder, -.bluelib input[type="submit"]:optional::placeholder, -body input[type="reset"]:optional::placeholder, -.bluelib input[type="reset"]:optional::placeholder, -body .input-button:optional::placeholder, -.bluelib .input-button:optional::placeholder, -body input[type="checkbox"]:optional::placeholder, -.bluelib input[type="checkbox"]:optional::placeholder, -body .input-checkbox:optional::placeholder, -.bluelib .input-checkbox:optional::placeholder, -body input[type="radio"]:optional::placeholder, -.bluelib input[type="radio"]:optional::placeholder, -body .input-radio:optional::placeholder, -.bluelib .input-radio:optional::placeholder, -body .input:optional::placeholder, -.bluelib .input:optional::placeholder { - font-style: italic; -} -body .input-field:focus-visible, -.bluelib .input-field:focus-visible, -body input[type="color"]:focus-visible, -.bluelib input[type="color"]:focus-visible, -body input[type="date"]:focus-visible, -.bluelib input[type="date"]:focus-visible, -body input[type="datetime-local"]:focus-visible, -.bluelib input[type="datetime-local"]:focus-visible, -body input[type="email"]:focus-visible, -.bluelib input[type="email"]:focus-visible, -body input[type="file"]:focus-visible, -.bluelib input[type="file"]:focus-visible, -body input[type="image"]:focus-visible, -.bluelib input[type="image"]:focus-visible, -body input[type="month"]:focus-visible, -.bluelib input[type="month"]:focus-visible, -body input[type="number"]:focus-visible, -.bluelib input[type="number"]:focus-visible, -body input[type="password"]:focus-visible, -.bluelib input[type="password"]:focus-visible, -body input[type="search"]:focus-visible, -.bluelib input[type="search"]:focus-visible, -body input[type="tel"]:focus-visible, -.bluelib input[type="tel"]:focus-visible, -body input[type="text"]:focus-visible, -.bluelib input[type="text"]:focus-visible, -body input[type="time"]:focus-visible, -.bluelib input[type="time"]:focus-visible, -body input[type="url"]:focus-visible, -.bluelib input[type="url"]:focus-visible, -body input[type="week"]:focus-visible, -.bluelib input[type="week"]:focus-visible, -body textarea:focus-visible, -.bluelib textarea:focus-visible, -body .input-area:focus-visible, -.bluelib .input-area:focus-visible, -body select:not([multiple]):focus-visible, -.bluelib select:not([multiple]):focus-visible, -body .input-select:focus-visible, -.bluelib .input-select:focus-visible, -body select[multiple]:focus-visible, -.bluelib select[multiple]:focus-visible, -body .input-multiselect:focus-visible, -.bluelib .input-multiselect:focus-visible, -body button:focus-visible, -.bluelib button:focus-visible, -body input[type="submit"]:focus-visible, -.bluelib input[type="submit"]:focus-visible, -body input[type="reset"]:focus-visible, -.bluelib input[type="reset"]:focus-visible, -body .input-button:focus-visible, -.bluelib .input-button:focus-visible, -body input[type="checkbox"]:focus-visible, -.bluelib input[type="checkbox"]:focus-visible, -body .input-checkbox:focus-visible, -.bluelib .input-checkbox:focus-visible, -body input[type="radio"]:focus-visible, -.bluelib input[type="radio"]:focus-visible, -body .input-radio:focus-visible, -.bluelib .input-radio:focus-visible, -body .input:focus-visible, -.bluelib .input:focus-visible { - outline: none; -} -body .input-field, -.bluelib .input-field, -body input[type="color"], -.bluelib input[type="color"], -body input[type="date"], -.bluelib input[type="date"], -body input[type="datetime-local"], -.bluelib input[type="datetime-local"], -body input[type="email"], -.bluelib input[type="email"], -body input[type="file"], -.bluelib input[type="file"], -body input[type="image"], -.bluelib input[type="image"], -body input[type="month"], -.bluelib input[type="month"], -body input[type="number"], -.bluelib input[type="number"], -body input[type="password"], -.bluelib input[type="password"], -body input[type="search"], -.bluelib input[type="search"], -body input[type="tel"], -.bluelib input[type="tel"], -body input[type="text"], -.bluelib input[type="text"], -body input[type="time"], -.bluelib input[type="time"], -body input[type="url"], -.bluelib input[type="url"], -body input[type="week"], -.bluelib input[type="week"] { - cursor: text; - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; - padding: 6px; -} -body textarea, -.bluelib textarea, -body .input-area, -.bluelib .input-area { - cursor: text; - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; - padding: 6px; -} -body select:not([multiple]), -.bluelib select:not([multiple]), -body .input-select, -.bluelib .input-select { - cursor: context-menu; - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - body select:not([multiple]) option, - .bluelib select:not([multiple]) option, - body .input-select option, - .bluelib .input-select option, - body select:not([multiple]) .input-option, - .bluelib select:not([multiple]) .input-option, - body .input-select .input-option, - .bluelib .input-select .input-option, - body select:not([multiple]) optgroup, - .bluelib select:not([multiple]) optgroup, - body .input-select optgroup, - .bluelib .input-select optgroup, - body select:not([multiple]) .input-optgroup, - .bluelib select:not([multiple]) .input-optgroup, - body .input-select .input-optgroup, - .bluelib .input-select .input-optgroup { - background-color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - } -} -body select[multiple], -.bluelib select[multiple], -body .input-multiselect, -.bluelib .input-multiselect { - cursor: vertical-text; - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; -} -body select:not([multiple]), -.bluelib select:not([multiple]), -body .input-select, -.bluelib .input-select, -body select[multiple], -.bluelib select[multiple], -body .input-multiselect, -.bluelib .input-multiselect { - padding: 6px 4px; -} -body select:not([multiple]) option, -.bluelib select:not([multiple]) option, -body .input-select option, -.bluelib .input-select option, -body select[multiple] option, -.bluelib select[multiple] option, -body .input-multiselect option, -.bluelib .input-multiselect option, -body select:not([multiple]) .input-option, -.bluelib select:not([multiple]) .input-option, -body .input-select .input-option, -.bluelib .input-select .input-option, -body select[multiple] .input-option, -.bluelib select[multiple] .input-option, -body .input-multiselect .input-option, -.bluelib .input-multiselect .input-option { - font-weight: normal; - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - padding: 4px; -} -body select:not([multiple]) optgroup, -.bluelib select:not([multiple]) optgroup, -body .input-select optgroup, -.bluelib .input-select optgroup, -body select[multiple] optgroup, -.bluelib select[multiple] optgroup, -body .input-multiselect optgroup, -.bluelib .input-multiselect optgroup, -body select:not([multiple]) .input-optgroup, -.bluelib select:not([multiple]) .input-optgroup, -body .input-select .input-optgroup, -.bluelib .input-select .input-optgroup, -body select[multiple] .input-optgroup, -.bluelib select[multiple] .input-optgroup, -body .input-multiselect .input-optgroup, -.bluelib .input-multiselect .input-optgroup { - font-weight: bold; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); - padding: 4px; -} -body select:not([multiple]) optgroup option, -.bluelib select:not([multiple]) optgroup option, -body .input-select optgroup option, -.bluelib .input-select optgroup option, -body select[multiple] optgroup option, -.bluelib select[multiple] optgroup option, -body .input-multiselect optgroup option, -.bluelib .input-multiselect optgroup option, -body select:not([multiple]) .input-optgroup option, -.bluelib select:not([multiple]) .input-optgroup option, -body .input-select .input-optgroup option, -.bluelib .input-select .input-optgroup option, -body select[multiple] .input-optgroup option, -.bluelib select[multiple] .input-optgroup option, -body .input-multiselect .input-optgroup option, -.bluelib .input-multiselect .input-optgroup option, -body select:not([multiple]) optgroup .input-option, -.bluelib select:not([multiple]) optgroup .input-option, -body .input-select optgroup .input-option, -.bluelib .input-select optgroup .input-option, -body select[multiple] optgroup .input-option, -.bluelib select[multiple] optgroup .input-option, -body .input-multiselect optgroup .input-option, -.bluelib .input-multiselect optgroup .input-option, -body select:not([multiple]) .input-optgroup .input-option, -.bluelib select:not([multiple]) .input-optgroup .input-option, -body .input-select .input-optgroup .input-option, -.bluelib .input-select .input-optgroup .input-option, -body select[multiple] .input-optgroup .input-option, -.bluelib select[multiple] .input-optgroup .input-option, -body .input-multiselect .input-optgroup .input-option, -.bluelib .input-multiselect .input-optgroup .input-option { - padding: 4px 20px; -} -body select:not([multiple]) optgroup option::before, -.bluelib select:not([multiple]) optgroup option::before, -body .input-select optgroup option::before, -.bluelib .input-select optgroup option::before, -body select[multiple] optgroup option::before, -.bluelib select[multiple] optgroup option::before, -body .input-multiselect optgroup option::before, -.bluelib .input-multiselect optgroup option::before, -body select:not([multiple]) .input-optgroup option::before, -.bluelib select:not([multiple]) .input-optgroup option::before, -body .input-select .input-optgroup option::before, -.bluelib .input-select .input-optgroup option::before, -body select[multiple] .input-optgroup option::before, -.bluelib select[multiple] .input-optgroup option::before, -body .input-multiselect .input-optgroup option::before, -.bluelib .input-multiselect .input-optgroup option::before, -body select:not([multiple]) optgroup .input-option::before, -.bluelib select:not([multiple]) optgroup .input-option::before, -body .input-select optgroup .input-option::before, -.bluelib .input-select optgroup .input-option::before, -body select[multiple] optgroup .input-option::before, -.bluelib select[multiple] optgroup .input-option::before, -body .input-multiselect optgroup .input-option::before, -.bluelib .input-multiselect optgroup .input-option::before, -body select:not([multiple]) .input-optgroup .input-option::before, -.bluelib select:not([multiple]) .input-optgroup .input-option::before, -body .input-select .input-optgroup .input-option::before, -.bluelib .input-select .input-optgroup .input-option::before, -body select[multiple] .input-optgroup .input-option::before, -.bluelib select[multiple] .input-optgroup .input-option::before, -body .input-multiselect .input-optgroup .input-option::before, -.bluelib .input-multiselect .input-optgroup .input-option::before { - content: ""; -} -body button, -.bluelib button, -body input[type="submit"], -.bluelib input[type="submit"], -body input[type="reset"], -.bluelib input[type="reset"], -body .input-button, -.bluelib .input-button { - cursor: pointer; - display: inline-flex; - justify-content: center; - align-items: center; - padding: 6px 16px; - border-radius: 4px; -} -body button:active, -.bluelib button:active, -body input[type="submit"]:active, -.bluelib input[type="submit"]:active, -body input[type="reset"]:active, -.bluelib input[type="reset"]:active, -body .input-button:active, -.bluelib .input-button:active { - border-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); -} -body button [disabled]:active, -.bluelib button [disabled]:active, -body input[type="submit"] [disabled]:active, -.bluelib input[type="submit"] [disabled]:active, -body input[type="reset"] [disabled]:active, -.bluelib input[type="reset"] [disabled]:active, -body .input-button [disabled]:active, -.bluelib .input-button [disabled]:active, -body button .status-disabled:active, -.bluelib button .status-disabled:active, -body input[type="submit"] .status-disabled:active, -.bluelib input[type="submit"] .status-disabled:active, -body input[type="reset"] .status-disabled:active, -.bluelib input[type="reset"] .status-disabled:active, -body .input-button .status-disabled:active, -.bluelib .input-button .status-disabled:active { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body input[type="checkbox"], -.bluelib input[type="checkbox"], -body .input-checkbox, -.bluelib .input-checkbox, -body input[type="radio"], -.bluelib input[type="radio"], -body .input-radio, -.bluelib .input-radio { - appearance: none; - cursor: pointer; - width: 24px; - height: 24px; - border-width: 2px; - display: inline-flex; - justify-content: center; - align-items: center; -} -body input[type="checkbox"]::before, -.bluelib input[type="checkbox"]::before, -body .input-checkbox::before, -.bluelib .input-checkbox::before, -body input[type="radio"]::before, -.bluelib input[type="radio"]::before, -body .input-radio::before, -.bluelib .input-radio::before { - display: block; - content: ""; - width: 14px; - height: 14px; -} -body input[type="checkbox"]:checked::before, -.bluelib input[type="checkbox"]:checked::before, -body .input-checkbox:checked::before, -.bluelib .input-checkbox:checked::before, -body input[type="radio"]:checked::before, -.bluelib input[type="radio"]:checked::before, -body .input-radio:checked::before, -.bluelib .input-radio:checked::before { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.9); -} -body input[type="checkbox"]:hover:checked::before, -.bluelib input[type="checkbox"]:hover:checked::before, -body .input-checkbox:hover:checked::before, -.bluelib .input-checkbox:hover:checked::before, -body input[type="radio"]:hover:checked::before, -.bluelib input[type="radio"]:hover:checked::before, -body .input-radio:hover:checked::before, -.bluelib .input-radio:hover:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 10)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 10)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 10)), 1); -} -body input[type="checkbox"]:focus:checked::before, -.bluelib input[type="checkbox"]:focus:checked::before, -body .input-checkbox:focus:checked::before, -.bluelib .input-checkbox:focus:checked::before, -body input[type="radio"]:focus:checked::before, -.bluelib input[type="radio"]:focus:checked::before, -body .input-radio:focus:checked::before, -.bluelib .input-radio:focus:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body input[type="checkbox"]:active:checked::before, -.bluelib input[type="checkbox"]:active:checked::before, -body .input-checkbox:active:checked::before, -.bluelib .input-checkbox:active:checked::before, -body input[type="radio"]:active:checked::before, -.bluelib input[type="radio"]:active:checked::before, -body .input-radio:active:checked::before, -.bluelib .input-radio:active:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body input[type="checkbox"], -.bluelib input[type="checkbox"], -body .input-checkbox, -.bluelib .input-checkbox { - border-radius: 4px; -} -body input[type="checkbox"]::before, -.bluelib input[type="checkbox"]::before, -body .input-checkbox::before, -.bluelib .input-checkbox::before { - border-radius: 2px; -} -body input[type="radio"], -.bluelib input[type="radio"], -body .input-radio, -.bluelib .input-radio { - border-radius: 100%; -} -body input[type="radio"]::before, -.bluelib input[type="radio"]::before, -body .input-radio::before, -.bluelib .input-radio::before { - border-radius: 100%; -} -body form, -.bluelib form, -body .form, -.bluelib .form { - display: grid; - align-items: center; - row-gap: 4px; - column-gap: 8px; - grid-template-columns: minmax(auto, 1fr) 5fr; -} -body form > label, -.bluelib form > label, -body .form > label, -.bluelib .form > label, -body form .form-label, -.bluelib form .form-label, -body .form .form-label, -.bluelib .form .form-label { - grid-column: 1; - justify-self: end; - text-align: right; - --bluelib-color-r: var(--bluelib-accent-r); - --bluelib-color-g: var(--bluelib-accent-g); - --bluelib-color-b: var(--bluelib-accent-b); - font-weight: 500; -} -body form > .input-field, -.bluelib form > .input-field, -body .form > .input-field, -.bluelib .form > .input-field, -body form input[type="color"], -.bluelib form input[type="color"], -body .form input[type="color"], -.bluelib .form input[type="color"], -body form input[type="date"], -.bluelib form input[type="date"], -body .form input[type="date"], -.bluelib .form input[type="date"], -body form input[type="datetime-local"], -.bluelib form input[type="datetime-local"], -body .form input[type="datetime-local"], -.bluelib .form input[type="datetime-local"], -body form input[type="email"], -.bluelib form input[type="email"], -body .form input[type="email"], -.bluelib .form input[type="email"], -body form input[type="file"], -.bluelib form input[type="file"], -body .form input[type="file"], -.bluelib .form input[type="file"], -body form input[type="image"], -.bluelib form input[type="image"], -body .form input[type="image"], -.bluelib .form input[type="image"], -body form input[type="month"], -.bluelib form input[type="month"], -body .form input[type="month"], -.bluelib .form input[type="month"], -body form input[type="number"], -.bluelib form input[type="number"], -body .form input[type="number"], -.bluelib .form input[type="number"], -body form input[type="password"], -.bluelib form input[type="password"], -body .form input[type="password"], -.bluelib .form input[type="password"], -body form input[type="search"], -.bluelib form input[type="search"], -body .form input[type="search"], -.bluelib .form input[type="search"], -body form input[type="tel"], -.bluelib form input[type="tel"], -body .form input[type="tel"], -.bluelib .form input[type="tel"], -body form input[type="text"], -.bluelib form input[type="text"], -body .form input[type="text"], -.bluelib .form input[type="text"], -body form input[type="time"], -.bluelib form input[type="time"], -body .form input[type="time"], -.bluelib .form input[type="time"], -body form input[type="url"], -.bluelib form input[type="url"], -body .form input[type="url"], -.bluelib .form input[type="url"], -body form input[type="week"], -.bluelib form input[type="week"], -body .form input[type="week"], -.bluelib .form input[type="week"], -body form > textarea, -.bluelib form > textarea, -body .form > textarea, -.bluelib .form > textarea, -body form .input-area, -.bluelib form .input-area, -body .form .input-area, -.bluelib .form .input-area, -body form > select:not([multiple]), -.bluelib form > select:not([multiple]), -body .form > select:not([multiple]), -.bluelib .form > select:not([multiple]), -body form .input-select, -.bluelib form .input-select, -body .form .input-select, -.bluelib .form .input-select, -body form > select[multiple], -.bluelib form > select[multiple], -body .form > select[multiple], -.bluelib .form > select[multiple], -body form .input-multiselect, -.bluelib form .input-multiselect, -body .form .input-multiselect, -.bluelib .form .input-multiselect, -body form > button, -.bluelib form > button, -body .form > button, -.bluelib .form > button, -body form input[type="submit"], -.bluelib form input[type="submit"], -body .form input[type="submit"], -.bluelib .form input[type="submit"], -body form input[type="reset"], -.bluelib form input[type="reset"], -body .form input[type="reset"], -.bluelib .form input[type="reset"], -body form .input-button, -.bluelib form .input-button, -body .form .input-button, -.bluelib .form .input-button, -body form > input[type="checkbox"], -.bluelib form > input[type="checkbox"], -body .form > input[type="checkbox"], -.bluelib .form > input[type="checkbox"], -body form .input-checkbox, -.bluelib form .input-checkbox, -body .form .input-checkbox, -.bluelib .form .input-checkbox, -body form > input[type="radio"], -.bluelib form > input[type="radio"], -body .form > input[type="radio"], -.bluelib .form > input[type="radio"], -body form .input-radio, -.bluelib form .input-radio, -body .form .input-radio, -.bluelib .form .input-radio, -body form > .input, -.bluelib form > .input, -body .form > .input, -.bluelib .form > .input, -body form .form-input, -.bluelib form .form-input, -body .form .form-input, -.bluelib .form .form-input { - grid-column: 2; - justify-self: stretch; -} -body form .form-group, -.bluelib form .form-group, -body .form .form-group, -.bluelib .form .form-group { - grid-column: 2; - display: flex; - gap: 8px 16px; - justify-content: space-evenly; - align-items: center; - flex-wrap: wrap; - width: 100%; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - padding: 6px; - border-radius: 4px; -} -body form .form-group > label, -.bluelib form .form-group > label, -body .form .form-group > label, -.bluelib .form .form-group > label, -body form .form-group .form-group-label, -.bluelib form .form-group .form-group-label, -body .form .form-group .form-group-label, -.bluelib .form .form-group .form-group-label { - display: flex; - gap: 6px; - justify-content: center; - align-items: center; - text-align: left; -} -body form .form-group .form-group-row, -.bluelib form .form-group .form-group-row, -body .form .form-group .form-group-row, -.bluelib .form .form-group .form-group-row { - flex-basis: 100%; - justify-content: start; -} -body form .form-row, -.bluelib form .form-row, -body .form .form-row, -.bluelib .form .form-row { - grid-column-start: 1; - grid-column-end: 3; - display: flex; - gap: 8px; - justify-content: center; - align-items: center; - width: 100%; - margin-top: 8px; - margin-bottom: 8px; -} -body form .form-row .panel, -.bluelib form .form-row .panel, -body .form .form-row .panel, -.bluelib .form .form-row .panel { - margin: 0; -} -body form .form-row:first-child, -.bluelib form .form-row:first-child, -body .form .form-row:first-child, -.bluelib .form .form-row:first-child { - margin-top: 0; -} -body form .form-row:last-child, -.bluelib form .form-row:last-child, -body .form .form-row:last-child, -.bluelib .form .form-row:last-child { - margin-bottom: 0; -} -body h1, -.bluelib h1, -body h2, -.bluelib h2, -body h3, -.bluelib h3, -body h4, -.bluelib h4, -body h5, -.bluelib h5, -body h6, -.bluelib h6, -body .heading, -.bluelib .heading { - text-align: center; - --bluelib-color-r: var(--bluelib-accent-r); - --bluelib-color-g: var(--bluelib-accent-g); - --bluelib-color-b: var(--bluelib-accent-b); - font-family: var(--bluelib-title-family); - font-weight: var(--bluelib-title-weight); -} -body a, -.bluelib a, -body .anchor, -.bluelib .anchor { - text-decoration-line: underline; - text-decoration-thickness: 1px; -} -body a:focus-visible, -.bluelib a:focus-visible, -body .anchor:focus-visible, -.bluelib .anchor:focus-visible { - text-decoration-thickness: 2px; -} -body a:hover, -.bluelib a:hover, -body .anchor:hover, -.bluelib .anchor:hover, -body a:focus, -.bluelib a:focus, -body .anchor:focus, -.bluelib .anchor:focus { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body a:active, -.bluelib a:active, -body .anchor:active, -.bluelib .anchor:active { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 60)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 60)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 60)), 1); -} -body a:not([href]), -.bluelib a:not([href]), -body .anchor-broken, -.bluelib .anchor-broken { - cursor: not-allowed; - --bluelib-color-r: var(--bluelib-broken-r); - --bluelib-color-g: var(--bluelib-broken-g); - --bluelib-color-b: var(--bluelib-broken-b); - text-decoration-style: dashed; -} -body a:not([href]):hover, -.bluelib a:not([href]):hover, -body .anchor-broken:hover, -.bluelib .anchor-broken:hover, -body a:not([href]):focus, -.bluelib a:not([href]):focus, -body .anchor-broken:focus, -.bluelib .anchor-broken:focus, -body a:not([href]):active, -.bluelib a:not([href]):active, -body .anchor-broken:active, -.bluelib .anchor-broken:active { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); -} -body a[href], -.bluelib a[href], -body .anchor-link, -.bluelib .anchor-link { - cursor: pointer; - --bluelib-color-r: var(--bluelib-link-r); - --bluelib-color-g: var(--bluelib-link-g); - --bluelib-color-b: var(--bluelib-link-b); - text-decoration-style: solid; -} -body a[href]:visited, -.bluelib a[href]:visited, -body .anchor-link:visited, -.bluelib .anchor-link:visited { - --bluelib-color-r: var(--bluelib-visited-r); - --bluelib-color-g: var(--bluelib-visited-g); - --bluelib-color-b: var(--bluelib-visited-b); -} -body a[download], -.bluelib a[download], -body .anchor-download, -.bluelib .anchor-download { - cursor: pointer; - --bluelib-color-r: var(--bluelib-download-r); - --bluelib-color-g: var(--bluelib-download-g); - --bluelib-color-b: var(--bluelib-download-b); - text-decoration-style: solid; -} -body .details, -.bluelib .details, -body details, -.bluelib details { - margin-top: 8px; - margin-bottom: 8px; -} -body .details > .details-summary, -.bluelib .details > .details-summary, -body details > .details-summary, -.bluelib details > .details-summary, -body .details > summary, -.bluelib .details > summary, -body details > summary, -.bluelib details > summary { - cursor: pointer; - font-size: larger; - user-select: none; -} -body .details > .details-summary:hover, -.bluelib .details > .details-summary:hover, -body details > .details-summary:hover, -.bluelib details > .details-summary:hover, -body .details > summary:hover, -.bluelib .details > summary:hover, -body details > summary:hover, -.bluelib details > summary:hover { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); -} -body .details > .details-summary:focus-visible, -.bluelib .details > .details-summary:focus-visible, -body details > .details-summary:focus-visible, -.bluelib details > .details-summary:focus-visible, -body .details > summary:focus-visible, -.bluelib .details > summary:focus-visible, -body details > summary:focus-visible, -.bluelib details > summary:focus-visible { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body .details > .details-summary:active, -.bluelib .details > .details-summary:active, -body details > .details-summary:active, -.bluelib details > .details-summary:active, -body .details > summary:active, -.bluelib .details > summary:active, -body details > summary:active, -.bluelib details > summary:active { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 90)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 90)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 90)), 1); -} -body .details > .details-content, -.bluelib .details > .details-content, -body details > .details-content, -.bluelib details > .details-content, -body .details > :not(summary), -.bluelib .details > :not(summary), -body details > :not(summary), -.bluelib details > :not(summary) { - margin-top: 0.5rem; -} -body .details > .details, -.bluelib .details > .details, -body details > .details, -.bluelib details > .details, -body .details > details, -.bluelib .details > details, -body details > details, -.bluelib details > details { - margin-left: 16px; -} -body rp, -.bluelib rp, -body .ruby-parenthesis, -.bluelib .ruby-parenthesis { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body rt, -.bluelib rt, -body .ruby-text, -.bluelib .ruby-text { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.6); -} -body .todo, -.bluelib .todo { - background-color: #292F33; - --bluelib-color-r: 255; - --bluelib-color-g: 204; - --bluelib-color-b: 77; - border-color: #FFCC4D; -} -body abbr, -.bluelib abbr, -body .semantic-abbr, -.bluelib .semantic-abbr { - cursor: help; - text-decoration: underline 1px dotted currentColor; -} -body b, -.bluelib b, -body .semantic-b, -.bluelib .semantic-b { - font-weight: 500; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body cite, -.bluelib cite, -body .semantic-cite, -.bluelib .semantic-cite { - font-variant: small-caps; -} -body code, -.bluelib code, -body .semantic-code, -.bluelib .semantic-code { - font-family: var(--bluelib-code-family); - font-weight: var(--bluelib-code-weight); -} -body dfn, -.bluelib dfn, -body .semantic-dfn, -.bluelib .semantic-dfn { - text-decoration: underline 1px solid currentColor; - font-style: italic; -} -body em, -.bluelib em, -body .semantic-em, -.bluelib .semantic-em { - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body i, -.bluelib i, -body .semantic-i, -.bluelib .semantic-i { - font-style: italic; -} -body kbd, -.bluelib kbd, -body .semantic-kbd, -.bluelib .semantic-kbd { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - border-width: 3px; - border-style: ridge; - padding: 1px; - font-family: var(--bluelib-code-family); - font-weight: var(--bluelib-code-weight); -} -body kbd > kbd, -.bluelib kbd > kbd, -body .semantic-kbd > kbd, -.bluelib .semantic-kbd > kbd, -body kbd .semantic-kbd, -.bluelib kbd .semantic-kbd, -body .semantic-kbd .semantic-kbd, -.bluelib .semantic-kbd .semantic-kbd { - border: none; - padding: 0; - background-color: transparent; - font-weight: 600; -} -body .semantic-kbd-press, -.bluelib .semantic-kbd-press { - border-style: inset; -} -body .semantic-kbd-release, -.bluelib .semantic-kbd-release { - border-style: outset; -} -body mark, -.bluelib mark, -body .semantic-mark, -.bluelib .semantic-mark { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); -} -body pre, -.bluelib pre, -body .semantic-pre, -.bluelib .semantic-pre { - font-family: var(--bluelib-text-family); - font-weight: var(--bluelib-text-weight); -} -body q, -.bluelib q, -body .semantic-q, -.bluelib .semantic-q { - font-style: oblique; -} -body q:before, -.bluelib q:before, -body .semantic-q:before, -.bluelib .semantic-q:before, -body q:after, -.bluelib q:after, -body .semantic-q:after, -.bluelib .semantic-q:after { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -body s, -.bluelib s, -body .semantic-s, -.bluelib .semantic-s { - text-decoration: currentColor line-through; -} -body samp, -.bluelib samp, -body .semantic-samp, -.bluelib .semantic-samp { - background-color: rgba(calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), 1); - color: rgba(calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), 1); -} -body small, -.bluelib small, -body .semantic-small, -.bluelib .semantic-small { - font-size: smaller; -} -body strong, -.bluelib strong, -body .semantic-strong, -.bluelib .semantic-strong { - font-weight: 800; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body u, -.bluelib u, -body .semantic-u, -.bluelib .semantic-u { - text-decoration: currentColor underline; -} -body var, -.bluelib var, -body .semantic-var, -.bluelib .semantic-var { - font-style: normal; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body .color-red, -.bluelib .color-red { - --bluelib-color-r: var(--bluelib-red-r); - --bluelib-color-g: var(--bluelib-red-g); - --bluelib-color-b: var(--bluelib-red-b); -} -body .color-orange, -.bluelib .color-orange { - --bluelib-color-r: var(--bluelib-orange-r); - --bluelib-color-g: var(--bluelib-orange-g); - --bluelib-color-b: var(--bluelib-orange-b); -} -body .color-yellow, -.bluelib .color-yellow { - --bluelib-color-r: var(--bluelib-yellow-r); - --bluelib-color-g: var(--bluelib-yellow-g); - --bluelib-color-b: var(--bluelib-yellow-b); -} -body .color-lime, -.bluelib .color-lime, -body .color-green, -.bluelib .color-green { - --bluelib-color-r: var(--bluelib-lime-r); - --bluelib-color-g: var(--bluelib-lime-g); - --bluelib-color-b: var(--bluelib-lime-b); -} -body .color-cyan, -.bluelib .color-cyan { - --bluelib-color-r: var(--bluelib-cyan-r); - --bluelib-color-g: var(--bluelib-cyan-g); - --bluelib-color-b: var(--bluelib-cyan-b); -} -body .color-blue, -.bluelib .color-blue { - --bluelib-color-r: var(--bluelib-blue-r); - --bluelib-color-g: var(--bluelib-blue-g); - --bluelib-color-b: var(--bluelib-blue-b); -} -body .color-magenta, -.bluelib .color-magenta { - --bluelib-color-r: var(--bluelib-magenta-r); - --bluelib-color-g: var(--bluelib-magenta-g); - --bluelib-color-b: var(--bluelib-magenta-b); -} -body .color-gray, -.bluelib .color-gray { - --bluelib-color-r: var(--bluelib-gray-r); - --bluelib-color-g: var(--bluelib-gray-g); - --bluelib-color-b: var(--bluelib-gray-b); -} -body .special-remove, -.bluelib .special-remove, -body .indexbreakrow, -.bluelib .indexbreakrow { - display: none !important; -} -body .special-hide, -.bluelib .special-hide { - visibility: hidden !important; -} -body .special-block-center, -.bluelib .special-block-center, -body #indexlist, -.bluelib #indexlist { - margin-left: auto !important; - margin-right: auto !important; -} diff --git a/dist/skeleton.apache.less b/dist/skeleton.apache.less deleted file mode 100644 index d5df28d..0000000 --- a/dist/skeleton.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/skeleton.less"; diff --git a/dist/skeleton.module.css b/dist/skeleton.module.css deleted file mode 100644 index 221a76e..0000000 --- a/dist/skeleton.module.css +++ /dev/null @@ -1,753 +0,0 @@ -.bluelib { - --bluelib-title-family: sans-serif; - --bluelib-title-weight: 400; - --bluelib-text-family: sans-serif; - --bluelib-text-weight: 400; - --bluelib-code-family: monospace; - --bluelib-code-weight: 400; - background-color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - width: 100%; - height: 100%; - margin: 0; - --bluelib-color-r: var(--bluelib-foreground-r); - --bluelib-color-g: var(--bluelib-foreground-g); - --bluelib-color-b: var(--bluelib-foreground-b); - font-family: var(--bluelib-text-family); - font-weight: var(--bluelib-text-weight); -} -.bluelib, -.bluelib *, -.bluelib .all { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - scrollbar-color: rgb(var(--bluelib-foreground-r), var(--bluelib-foreground-g), var(--bluelib-foreground-b)) rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); -} -.bluelib, -.bluelib *, -.bluelib .all, -.bluelib::before, -.bluelib *::before, -.bluelib .all::before, -.bluelib::after, -.bluelib *::after, -.bluelib .all::after { - box-sizing: border-box; -} -.bluelib .page-footer { - margin-top: 1em; - text-align: center; - font-size: x-small; -} -.bluelib .layout { - display: grid; - justify-content: stretch; - align-items: stretch; -} -.bluelib .layout-fill { - padding: 4px; - grid-template-areas: "single"; - grid-template-columns: 1fr; - grid-template-rows: 1fr; -} -.bluelib .layout-fill-single { - grid-area: single; -} -.bluelib .layout-threecol { - padding: 4px; - grid-column-gap: 8px; -} -@media screen and (min-width: 1281px) { - .bluelib .layout-threecol { - grid-template-areas: "left center right"; - grid-template-columns: 1fr auto 1fr; - grid-template-rows: 1fr; - } -} -@media screen and (max-width: 1280px) { - .bluelib .layout-threecol { - grid-template-areas: "center center" "left right"; - grid-template-columns: 1fr 1fr; - grid-template-rows: auto auto; - max-width: 1024px; - margin-left: auto; - margin-right: auto; - } -} -.bluelib .layout-threecol-left { - grid-area: left; -} -@media screen and (min-width: 1281px) { - .bluelib .layout-threecol-left { - justify-self: end; - } -} -@media screen and (max-width: 1280px) { - .bluelib .layout-threecol-left { - justify-self: stretch; - } -} -.bluelib .layout-threecol-center { - grid-area: center; -} -@media screen and (min-width: 1281px) { - .bluelib .layout-threecol-center { - width: 1024px; - } -} -@media screen and (max-width: 1280px) { - .bluelib .layout-threecol-center { - max-width: 1024px; - } -} -.bluelib .layout-threecol-right { - grid-area: right; -} -@media screen and (min-width: 1281px) { - .bluelib .layout-threecol-right { - justify-self: start; - } -} -@media screen and (max-width: 1280px) { - .bluelib .layout-threecol-right { - justify-self: stretch; - } -} -.bluelib .panel { - margin: 8px 0; - padding: 8px; - border-radius: 4px; - width: 100%; - min-width: 312px; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -.bluelib .panel > *:first-child, -.bluelib .panel .all:first-child { - margin-top: 0; -} -.bluelib .panel > *:last-child, -.bluelib .panel .all:last-child { - margin-bottom: 0; -} -.bluelib .panel-box { - border-width: 2px; - border-style: solid; -} -.bluelib .panel-dialog { - border-width: 0 0 0 2px; - border-style: solid; -} -.bluelib .panel-parenthesis { - border-width: 0; - font-size: smaller; -} -.bluelib .chapter { - display: flex; - flex-wrap: wrap; - gap: 8px; - justify-content: stretch; - align-items: stretch; - margin: 8px 0; -} -.bluelib .chapter > *, -.bluelib .chapter .all { - flex-grow: 1; - flex-shrink: 0; -} -.bluelib .chapter > .heading { - flex-basis: 100%; - margin-top: 0.2rem; - margin-bottom: 0.2rem; -} -.bluelib .chapter > .heading:first-child { - margin-top: 1rem; -} -.bluelib .chapter > .heading:last-child { - margin-bottom: 1rem; -} -.bluelib .chapter > .panel { - margin: 0; - flex-basis: 0; -} -.bluelib .chapter-forcewrap { - flex-grow: 0; - flex-shrink: 0; - flex-basis: 100%; - position: relative; -} -.bluelib .separator { - border-width: 1px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -.bluelib .separator-light { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -.bluelib .separator-heavy { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); -} -.bluelib .image { - display: block; - max-width: 100%; - margin-left: auto; - margin-right: auto; - object-fit: contain; -} -.bluelib .image-limit-half { - max-height: max(28.2vw, 50vh); -} -.bluelib .image-limit-quarter { - max-height: max(14.1vw, 25vh); -} -.bluelib .figure { - display: inline-flex; - flex-direction: column; - gap: 8px; - font-size: small; - font-style: italic; - text-align: center; - margin: 8px 0; - padding: 8px; - border-width: 2px; - border-style: solid; - border-radius: 4px; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); -} -.bluelib .table { - display: table; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - border-width: 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 0 0 4px 4px; - border-collapse: collapse; - padding: 8px; - margin: 8px 0; -} -.bluelib .table-caption { - display: table-caption; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - padding: 4px; - font-style: italic; - font-size: small; -} -.bluelib .table.status-disabled .table-caption { - opacity: 50%; -} -.bluelib .table-caption-top { - caption-side: top; - border-width: 2px 2px 0 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 4px 4px 0 0; -} -.bluelib .table-caption-bottom { - caption-side: bottom; - border-width: 0 2px 2px 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 0 0 4px 4px; -} -.bluelib .table-header { - display: table-header-group; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -.bluelib .table-body { - display: table-row-group; -} -.bluelib .table-footer { - display: table-footer-group; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -.bluelib .table-row { - display: table-row; - border: 1px solid rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -.bluelib .table-data, -.bluelib .table-head { - display: table-cell; - border: 1px solid rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - padding: 8px; -} -.bluelib .table-head { - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -.bluelib .table-mark { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); -} -.bluelib .list-item { - margin: 0.35rem 0; -} -.bluelib .list-item::marker { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -.bluelib .list-description-term { - margin-top: 0.7rem; - margin-bottom: 0.35rem; - font-size: larger; -} -.bluelib .list-description-details { - margin-top: 0.35rem; - margin-bottom: 0.7rem; - margin-left: 16px; -} -.bluelib .status-disabled { - opacity: 50%; -} -.bluelib .status-disabled, -.bluelib .status-disabled *, -.bluelib .status-disabled .all { - cursor: not-allowed !important; -} -.bluelib .input { - font: inherit; - width: 100%; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -.bluelib .input.status-disabled { - border-style: dashed; -} -.bluelib .input::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.41); - opacity: 1; -} -.bluelib .input:hover { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.6); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -.bluelib .input:hover::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.7); -} -.bluelib .input:focus { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); -} -.bluelib .input:focus::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.7); -} -.bluelib .input.status-disabled:hover, -.bluelib .input.status-disabled:focus { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -.bluelib .input.status-disabled:hover::placeholder, -.bluelib .input.status-disabled:focus::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.41); -} -.bluelib .input:optional, -.bluelib .input:optional::placeholder { - font-style: italic; -} -.bluelib .input:focus-visible { - outline: none; -} -.bluelib .input-field { - cursor: text; - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; - padding: 6px; -} -.bluelib .input-area { - cursor: text; - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; - padding: 6px; -} -.bluelib .input-select { - cursor: context-menu; - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - .bluelib .input-select .input-option, - .bluelib .input-select .input-optgroup { - background-color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - } -} -.bluelib .input-multiselect { - cursor: vertical-text; - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; -} -.bluelib .input-select, -.bluelib .input-multiselect { - padding: 6px 4px; -} -.bluelib .input-select .input-option, -.bluelib .input-multiselect .input-option { - font-weight: normal; - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - padding: 4px; -} -.bluelib .input-select .input-optgroup, -.bluelib .input-multiselect .input-optgroup { - font-weight: bold; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); - padding: 4px; -} -.bluelib .input-select .input-optgroup .input-option, -.bluelib .input-multiselect .input-optgroup .input-option { - padding: 4px 20px; -} -.bluelib .input-select .input-optgroup .input-option::before, -.bluelib .input-multiselect .input-optgroup .input-option::before { - content: ""; -} -.bluelib .input-button { - cursor: pointer; - display: inline-flex; - justify-content: center; - align-items: center; - padding: 6px 16px; - border-radius: 4px; -} -.bluelib .input-button:active { - border-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); -} -.bluelib .input-button .status-disabled:active { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -.bluelib .input-checkbox, -.bluelib .input-radio { - appearance: none; - cursor: pointer; - width: 24px; - height: 24px; - border-width: 2px; - display: inline-flex; - justify-content: center; - align-items: center; -} -.bluelib .input-checkbox::before, -.bluelib .input-radio::before { - display: block; - content: ""; - width: 14px; - height: 14px; -} -.bluelib .input-checkbox:checked::before, -.bluelib .input-radio:checked::before { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.9); -} -.bluelib .input-checkbox:hover:checked::before, -.bluelib .input-radio:hover:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 10)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 10)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 10)), 1); -} -.bluelib .input-checkbox:focus:checked::before, -.bluelib .input-radio:focus:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -.bluelib .input-checkbox:active:checked::before, -.bluelib .input-radio:active:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -.bluelib .input-checkbox { - border-radius: 4px; -} -.bluelib .input-checkbox::before { - border-radius: 2px; -} -.bluelib .input-radio { - border-radius: 100%; -} -.bluelib .input-radio::before { - border-radius: 100%; -} -.bluelib .form { - display: grid; - align-items: center; - row-gap: 4px; - column-gap: 8px; - grid-template-columns: minmax(auto, 1fr) 5fr; -} -.bluelib .form .form-label { - grid-column: 1; - justify-self: end; - text-align: right; - --bluelib-color-r: var(--bluelib-accent-r); - --bluelib-color-g: var(--bluelib-accent-g); - --bluelib-color-b: var(--bluelib-accent-b); - font-weight: 500; -} -.bluelib .form .form-input { - grid-column: 2; - justify-self: stretch; -} -.bluelib .form .form-group { - grid-column: 2; - display: flex; - gap: 8px 16px; - justify-content: space-evenly; - align-items: center; - flex-wrap: wrap; - width: 100%; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - padding: 6px; - border-radius: 4px; -} -.bluelib .form .form-group .form-group-label { - display: flex; - gap: 6px; - justify-content: center; - align-items: center; - text-align: left; -} -.bluelib .form .form-group .form-group-row { - flex-basis: 100%; - justify-content: start; -} -.bluelib .form .form-row { - grid-column-start: 1; - grid-column-end: 3; - display: flex; - gap: 8px; - justify-content: center; - align-items: center; - width: 100%; - margin-top: 8px; - margin-bottom: 8px; -} -.bluelib .form .form-row .panel { - margin: 0; -} -.bluelib .form .form-row:first-child { - margin-top: 0; -} -.bluelib .form .form-row:last-child { - margin-bottom: 0; -} -.bluelib .heading { - text-align: center; - --bluelib-color-r: var(--bluelib-accent-r); - --bluelib-color-g: var(--bluelib-accent-g); - --bluelib-color-b: var(--bluelib-accent-b); - font-family: var(--bluelib-title-family); - font-weight: var(--bluelib-title-weight); -} -.bluelib .anchor { - text-decoration-line: underline; - text-decoration-thickness: 1px; -} -.bluelib .anchor:focus-visible { - text-decoration-thickness: 2px; -} -.bluelib .anchor:hover, -.bluelib .anchor:focus { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -.bluelib .anchor:active { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 60)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 60)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 60)), 1); -} -.bluelib .anchor-broken { - cursor: not-allowed; - --bluelib-color-r: var(--bluelib-broken-r); - --bluelib-color-g: var(--bluelib-broken-g); - --bluelib-color-b: var(--bluelib-broken-b); - text-decoration-style: dashed; -} -.bluelib .anchor-broken:hover, -.bluelib .anchor-broken:focus, -.bluelib .anchor-broken:active { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); -} -.bluelib .anchor-link { - cursor: pointer; - --bluelib-color-r: var(--bluelib-link-r); - --bluelib-color-g: var(--bluelib-link-g); - --bluelib-color-b: var(--bluelib-link-b); - text-decoration-style: solid; -} -.bluelib .anchor-link:visited { - --bluelib-color-r: var(--bluelib-visited-r); - --bluelib-color-g: var(--bluelib-visited-g); - --bluelib-color-b: var(--bluelib-visited-b); -} -.bluelib .anchor-download { - cursor: pointer; - --bluelib-color-r: var(--bluelib-download-r); - --bluelib-color-g: var(--bluelib-download-g); - --bluelib-color-b: var(--bluelib-download-b); - text-decoration-style: solid; -} -.bluelib .details { - margin-top: 8px; - margin-bottom: 8px; -} -.bluelib .details > .details-summary { - cursor: pointer; - font-size: larger; - user-select: none; -} -.bluelib .details > .details-summary:hover { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); -} -.bluelib .details > .details-summary:focus-visible { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -.bluelib .details > .details-summary:active { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 90)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 90)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 90)), 1); -} -.bluelib .details > .details-content { - margin-top: 0.5rem; -} -.bluelib .details > .details { - margin-left: 16px; -} -.bluelib .ruby-parenthesis { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -.bluelib .ruby-text { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.6); -} -.bluelib .todo { - background-color: #292F33; - --bluelib-color-r: 255; - --bluelib-color-g: 204; - --bluelib-color-b: 77; - border-color: #FFCC4D; -} -.bluelib abbr, -.bluelib .semantic-abbr { - cursor: help; - text-decoration: underline 1px dotted currentColor; -} -.bluelib .semantic-b { - font-weight: 500; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -.bluelib .semantic-cite { - font-variant: small-caps; -} -.bluelib .semantic-code { - font-family: var(--bluelib-code-family); - font-weight: var(--bluelib-code-weight); -} -.bluelib .semantic-dfn { - text-decoration: underline 1px solid currentColor; - font-style: italic; -} -.bluelib .semantic-em { - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -.bluelib .semantic-i { - font-style: italic; -} -.bluelib .semantic-kbd { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - border-width: 3px; - border-style: ridge; - padding: 1px; - font-family: var(--bluelib-code-family); - font-weight: var(--bluelib-code-weight); -} -.bluelib .semantic-kbd > .semantic-kbd { - border: none; - padding: 0; - background-color: transparent; - font-weight: 600; -} -.bluelib .semantic-kbd-press { - border-style: inset; -} -.bluelib .semantic-kbd-release { - border-style: outset; -} -.bluelib .semantic-mark { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); -} -.bluelib .semantic-pre { - font-family: var(--bluelib-text-family); - font-weight: var(--bluelib-text-weight); -} -.bluelib .semantic-q { - font-style: oblique; -} -.bluelib .semantic-q:before, -.bluelib .semantic-q:after { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -.bluelib .semantic-s { - text-decoration: currentColor line-through; -} -.bluelib .semantic-samp { - background-color: rgba(calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), 1); - color: rgba(calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), 1); -} -.bluelib .semantic-small { - font-size: smaller; -} -.bluelib .semantic-strong { - font-weight: 800; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -.bluelib .semantic-u { - text-decoration: currentColor underline; -} -.bluelib .semantic-var { - font-style: normal; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -.bluelib .color-red { - --bluelib-color-r: var(--bluelib-red-r); - --bluelib-color-g: var(--bluelib-red-g); - --bluelib-color-b: var(--bluelib-red-b); -} -.bluelib .color-orange { - --bluelib-color-r: var(--bluelib-orange-r); - --bluelib-color-g: var(--bluelib-orange-g); - --bluelib-color-b: var(--bluelib-orange-b); -} -.bluelib .color-yellow { - --bluelib-color-r: var(--bluelib-yellow-r); - --bluelib-color-g: var(--bluelib-yellow-g); - --bluelib-color-b: var(--bluelib-yellow-b); -} -.bluelib .color-lime { - --bluelib-color-r: var(--bluelib-lime-r); - --bluelib-color-g: var(--bluelib-lime-g); - --bluelib-color-b: var(--bluelib-lime-b); -} -.bluelib .color-cyan { - --bluelib-color-r: var(--bluelib-cyan-r); - --bluelib-color-g: var(--bluelib-cyan-g); - --bluelib-color-b: var(--bluelib-cyan-b); -} -.bluelib .color-blue { - --bluelib-color-r: var(--bluelib-blue-r); - --bluelib-color-g: var(--bluelib-blue-g); - --bluelib-color-b: var(--bluelib-blue-b); -} -.bluelib .color-magenta { - --bluelib-color-r: var(--bluelib-magenta-r); - --bluelib-color-g: var(--bluelib-magenta-g); - --bluelib-color-b: var(--bluelib-magenta-b); -} -.bluelib .color-gray { - --bluelib-color-r: var(--bluelib-gray-r); - --bluelib-color-g: var(--bluelib-gray-g); - --bluelib-color-b: var(--bluelib-gray-b); -} -.bluelib .special-remove { - display: none !important; -} -.bluelib .special-hide { - visibility: hidden !important; -} -.bluelib .special-block-center { - margin-left: auto !important; - margin-right: auto !important; -} diff --git a/dist/skeleton.module.less b/dist/skeleton.module.less deleted file mode 100644 index aaaca89..0000000 --- a/dist/skeleton.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/skeleton.less"; diff --git a/dist/skeleton.root.css b/dist/skeleton.root.css deleted file mode 100644 index 04837be..0000000 --- a/dist/skeleton.root.css +++ /dev/null @@ -1,2632 +0,0 @@ -body, -.bluelib { - --bluelib-title-family: sans-serif; - --bluelib-title-weight: 400; - --bluelib-text-family: sans-serif; - --bluelib-text-weight: 400; - --bluelib-code-family: monospace; - --bluelib-code-weight: 400; - background-color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - width: 100%; - height: 100%; - margin: 0; - --bluelib-color-r: var(--bluelib-foreground-r); - --bluelib-color-g: var(--bluelib-foreground-g); - --bluelib-color-b: var(--bluelib-foreground-b); - font-family: var(--bluelib-text-family); - font-weight: var(--bluelib-text-weight); -} -body, -.bluelib, -body *, -.bluelib * { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - scrollbar-color: rgb(var(--bluelib-foreground-r), var(--bluelib-foreground-g), var(--bluelib-foreground-b)) rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); -} -body, -.bluelib, -body *, -.bluelib *, -body::before, -.bluelib::before, -body *::before, -.bluelib *::before, -body::after, -.bluelib::after, -body *::after, -.bluelib *::after { - box-sizing: border-box; -} -body footer, -.bluelib footer, -body .page-footer, -.bluelib .page-footer { - margin-top: 1em; - text-align: center; - font-size: x-small; -} -body .layout, -.bluelib .layout { - display: grid; - justify-content: stretch; - align-items: stretch; -} -body .layout-fill, -.bluelib .layout-fill { - padding: 4px; - grid-template-areas: "single"; - grid-template-columns: 1fr; - grid-template-rows: 1fr; -} -body .layout-fill-single, -.bluelib .layout-fill-single { - grid-area: single; -} -body .layout-threecol, -.bluelib .layout-threecol { - padding: 4px; - grid-column-gap: 8px; -} -@media screen and (min-width: 1281px) { - body .layout-threecol, - .bluelib .layout-threecol { - grid-template-areas: "left center right"; - grid-template-columns: 1fr auto 1fr; - grid-template-rows: 1fr; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol, - .bluelib .layout-threecol { - grid-template-areas: "center center" "left right"; - grid-template-columns: 1fr 1fr; - grid-template-rows: auto auto; - max-width: 1024px; - margin-left: auto; - margin-right: auto; - } -} -body .layout-threecol-left, -.bluelib .layout-threecol-left { - grid-area: left; -} -@media screen and (min-width: 1281px) { - body .layout-threecol-left, - .bluelib .layout-threecol-left { - justify-self: end; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol-left, - .bluelib .layout-threecol-left { - justify-self: stretch; - } -} -body .layout-threecol-center, -.bluelib .layout-threecol-center { - grid-area: center; -} -@media screen and (min-width: 1281px) { - body .layout-threecol-center, - .bluelib .layout-threecol-center { - width: 1024px; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol-center, - .bluelib .layout-threecol-center { - max-width: 1024px; - } -} -body .layout-threecol-right, -.bluelib .layout-threecol-right { - grid-area: right; -} -@media screen and (min-width: 1281px) { - body .layout-threecol-right, - .bluelib .layout-threecol-right { - justify-self: start; - } -} -@media screen and (max-width: 1280px) { - body .layout-threecol-right, - .bluelib .layout-threecol-right { - justify-self: stretch; - } -} -body .panel, -.bluelib .panel { - margin: 8px 0; - padding: 8px; - border-radius: 4px; - width: 100%; - min-width: 312px; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body .panel > *:first-child, -.bluelib .panel > *:first-child { - margin-top: 0; -} -body .panel > *:last-child, -.bluelib .panel > *:last-child { - margin-bottom: 0; -} -body .panel-box, -.bluelib .panel-box { - border-width: 2px; - border-style: solid; -} -body .panel-dialog, -.bluelib .panel-dialog { - border-width: 0 0 0 2px; - border-style: solid; -} -body .panel-parenthesis, -.bluelib .panel-parenthesis { - border-width: 0; - font-size: smaller; -} -body .chapter, -.bluelib .chapter { - display: flex; - flex-wrap: wrap; - gap: 8px; - justify-content: stretch; - align-items: stretch; - margin: 8px 0; -} -body .chapter > *, -.bluelib .chapter > * { - flex-grow: 1; - flex-shrink: 0; -} -body .chapter > h1, -.bluelib .chapter > h1, -body .chapter > h2, -.bluelib .chapter > h2, -body .chapter > h3, -.bluelib .chapter > h3, -body .chapter > h4, -.bluelib .chapter > h4, -body .chapter > h5, -.bluelib .chapter > h5, -body .chapter > h6, -.bluelib .chapter > h6, -body .chapter > .heading, -.bluelib .chapter > .heading { - flex-basis: 100%; - margin-top: 0.2rem; - margin-bottom: 0.2rem; -} -body .chapter > h1:first-child, -.bluelib .chapter > h1:first-child, -body .chapter > h2:first-child, -.bluelib .chapter > h2:first-child, -body .chapter > h3:first-child, -.bluelib .chapter > h3:first-child, -body .chapter > h4:first-child, -.bluelib .chapter > h4:first-child, -body .chapter > h5:first-child, -.bluelib .chapter > h5:first-child, -body .chapter > h6:first-child, -.bluelib .chapter > h6:first-child, -body .chapter > .heading:first-child, -.bluelib .chapter > .heading:first-child { - margin-top: 1rem; -} -body .chapter > h1:last-child, -.bluelib .chapter > h1:last-child, -body .chapter > h2:last-child, -.bluelib .chapter > h2:last-child, -body .chapter > h3:last-child, -.bluelib .chapter > h3:last-child, -body .chapter > h4:last-child, -.bluelib .chapter > h4:last-child, -body .chapter > h5:last-child, -.bluelib .chapter > h5:last-child, -body .chapter > h6:last-child, -.bluelib .chapter > h6:last-child, -body .chapter > .heading:last-child, -.bluelib .chapter > .heading:last-child { - margin-bottom: 1rem; -} -body .chapter > .panel, -.bluelib .chapter > .panel { - margin: 0; - flex-basis: 0; -} -body .chapter-forcewrap, -.bluelib .chapter-forcewrap { - flex-grow: 0; - flex-shrink: 0; - flex-basis: 100%; - position: relative; -} -body hr, -.bluelib hr, -body .separator, -.bluelib .separator { - border-width: 1px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -body .separator-light, -.bluelib .separator-light { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body .separator-heavy, -.bluelib .separator-heavy { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); -} -body img, -.bluelib img, -body .image, -.bluelib .image { - display: block; - max-width: 100%; - margin-left: auto; - margin-right: auto; - object-fit: contain; -} -body .image-limit-half, -.bluelib .image-limit-half { - max-height: max(28.2vw, 50vh); -} -body .image-limit-quarter, -.bluelib .image-limit-quarter { - max-height: max(14.1vw, 25vh); -} -body figure, -.bluelib figure, -body .figure, -.bluelib .figure { - display: inline-flex; - flex-direction: column; - gap: 8px; - font-size: small; - font-style: italic; - text-align: center; - margin: 8px 0; - padding: 8px; - border-width: 2px; - border-style: solid; - border-radius: 4px; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); -} -body table, -.bluelib table, -body .table, -.bluelib .table { - display: table; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - border-width: 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 0 0 4px 4px; - border-collapse: collapse; - padding: 8px; - margin: 8px 0; -} -body table caption, -.bluelib table caption, -body .table-caption, -.bluelib .table-caption { - display: table-caption; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - padding: 4px; - font-style: italic; - font-size: small; -} -body table[disabled] caption, -.bluelib table[disabled] caption, -body table.status-disabled caption, -.bluelib table.status-disabled caption, -body .table[disabled] caption, -.bluelib .table[disabled] caption, -body .table.status-disabled caption, -.bluelib .table.status-disabled caption, -body table[disabled] .table-caption, -.bluelib table[disabled] .table-caption, -body table.status-disabled .table-caption, -.bluelib table.status-disabled .table-caption, -body .table[disabled] .table-caption, -.bluelib .table[disabled] .table-caption, -body .table.status-disabled .table-caption, -.bluelib .table.status-disabled .table-caption { - opacity: 50%; -} -body table caption, -.bluelib table caption, -body .table-caption-top, -.bluelib .table-caption-top { - caption-side: top; - border-width: 2px 2px 0 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 4px 4px 0 0; -} -body .table-caption-bottom, -.bluelib .table-caption-bottom { - caption-side: bottom; - border-width: 0 2px 2px 2px; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - border-radius: 0 0 4px 4px; -} -body table thead, -.bluelib table thead, -body .table-header, -.bluelib .table-header { - display: table-header-group; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body table tbody, -.bluelib table tbody, -body .table-body, -.bluelib .table-body { - display: table-row-group; -} -body table tfoot, -.bluelib table tfoot, -body .table-footer, -.bluelib .table-footer { - display: table-footer-group; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body table tr, -.bluelib table tr, -body .table-row, -.bluelib .table-row { - display: table-row; - border: 1px solid rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body table td, -.bluelib table td, -body .table-data, -.bluelib .table-data, -body table th, -.bluelib table th, -body .table-head, -.bluelib .table-head { - display: table-cell; - border: 1px solid rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); - padding: 8px; -} -body table th, -.bluelib table th, -body .table-head, -.bluelib .table-head { - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body .table-mark, -.bluelib .table-mark { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); -} -body li, -.bluelib li, -body .list-item, -.bluelib .list-item { - margin: 0.35rem 0; -} -body li::marker, -.bluelib li::marker, -body .list-item::marker, -.bluelib .list-item::marker { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -body dt, -.bluelib dt, -body .list-description-term, -.bluelib .list-description-term { - margin-top: 0.7rem; - margin-bottom: 0.35rem; - font-size: larger; -} -body dd, -.bluelib dd, -body .list-description-details, -.bluelib .list-description-details { - margin-top: 0.35rem; - margin-bottom: 0.7rem; - margin-left: 16px; -} -body [disabled], -.bluelib [disabled], -body .status-disabled, -.bluelib .status-disabled { - opacity: 50%; -} -body [disabled], -.bluelib [disabled], -body .status-disabled, -.bluelib .status-disabled, -body [disabled] *, -.bluelib [disabled] *, -body .status-disabled *, -.bluelib .status-disabled * { - cursor: not-allowed !important; -} -body .input-field, -.bluelib .input-field, -body input[type="color"], -.bluelib input[type="color"], -body input[type="date"], -.bluelib input[type="date"], -body input[type="datetime-local"], -.bluelib input[type="datetime-local"], -body input[type="email"], -.bluelib input[type="email"], -body input[type="file"], -.bluelib input[type="file"], -body input[type="image"], -.bluelib input[type="image"], -body input[type="month"], -.bluelib input[type="month"], -body input[type="number"], -.bluelib input[type="number"], -body input[type="password"], -.bluelib input[type="password"], -body input[type="search"], -.bluelib input[type="search"], -body input[type="tel"], -.bluelib input[type="tel"], -body input[type="text"], -.bluelib input[type="text"], -body input[type="time"], -.bluelib input[type="time"], -body input[type="url"], -.bluelib input[type="url"], -body input[type="week"], -.bluelib input[type="week"], -body textarea, -.bluelib textarea, -body .input-area, -.bluelib .input-area, -body select:not([multiple]), -.bluelib select:not([multiple]), -body .input-select, -.bluelib .input-select, -body select[multiple], -.bluelib select[multiple], -body .input-multiselect, -.bluelib .input-multiselect, -body button, -.bluelib button, -body input[type="submit"], -.bluelib input[type="submit"], -body input[type="reset"], -.bluelib input[type="reset"], -body .input-button, -.bluelib .input-button, -body input[type="checkbox"], -.bluelib input[type="checkbox"], -body .input-checkbox, -.bluelib .input-checkbox, -body input[type="radio"], -.bluelib input[type="radio"], -body .input-radio, -.bluelib .input-radio, -body .input, -.bluelib .input { - font: inherit; - width: 100%; - border-style: solid; - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body .input-field[disabled], -.bluelib .input-field[disabled], -body input[type="color"][disabled], -.bluelib input[type="color"][disabled], -body input[type="date"][disabled], -.bluelib input[type="date"][disabled], -body input[type="datetime-local"][disabled], -.bluelib input[type="datetime-local"][disabled], -body input[type="email"][disabled], -.bluelib input[type="email"][disabled], -body input[type="file"][disabled], -.bluelib input[type="file"][disabled], -body input[type="image"][disabled], -.bluelib input[type="image"][disabled], -body input[type="month"][disabled], -.bluelib input[type="month"][disabled], -body input[type="number"][disabled], -.bluelib input[type="number"][disabled], -body input[type="password"][disabled], -.bluelib input[type="password"][disabled], -body input[type="search"][disabled], -.bluelib input[type="search"][disabled], -body input[type="tel"][disabled], -.bluelib input[type="tel"][disabled], -body input[type="text"][disabled], -.bluelib input[type="text"][disabled], -body input[type="time"][disabled], -.bluelib input[type="time"][disabled], -body input[type="url"][disabled], -.bluelib input[type="url"][disabled], -body input[type="week"][disabled], -.bluelib input[type="week"][disabled], -body textarea[disabled], -.bluelib textarea[disabled], -body .input-area[disabled], -.bluelib .input-area[disabled], -body select:not([multiple])[disabled], -.bluelib select:not([multiple])[disabled], -body .input-select[disabled], -.bluelib .input-select[disabled], -body select[multiple][disabled], -.bluelib select[multiple][disabled], -body .input-multiselect[disabled], -.bluelib .input-multiselect[disabled], -body button[disabled], -.bluelib button[disabled], -body input[type="submit"][disabled], -.bluelib input[type="submit"][disabled], -body input[type="reset"][disabled], -.bluelib input[type="reset"][disabled], -body .input-button[disabled], -.bluelib .input-button[disabled], -body input[type="checkbox"][disabled], -.bluelib input[type="checkbox"][disabled], -body .input-checkbox[disabled], -.bluelib .input-checkbox[disabled], -body input[type="radio"][disabled], -.bluelib input[type="radio"][disabled], -body .input-radio[disabled], -.bluelib .input-radio[disabled], -body .input[disabled], -.bluelib .input[disabled], -body .input-field .status-disabled, -.bluelib .input-field .status-disabled, -body input[type="color"] .status-disabled, -.bluelib input[type="color"] .status-disabled, -body input[type="date"] .status-disabled, -.bluelib input[type="date"] .status-disabled, -body input[type="datetime-local"] .status-disabled, -.bluelib input[type="datetime-local"] .status-disabled, -body input[type="email"] .status-disabled, -.bluelib input[type="email"] .status-disabled, -body input[type="file"] .status-disabled, -.bluelib input[type="file"] .status-disabled, -body input[type="image"] .status-disabled, -.bluelib input[type="image"] .status-disabled, -body input[type="month"] .status-disabled, -.bluelib input[type="month"] .status-disabled, -body input[type="number"] .status-disabled, -.bluelib input[type="number"] .status-disabled, -body input[type="password"] .status-disabled, -.bluelib input[type="password"] .status-disabled, -body input[type="search"] .status-disabled, -.bluelib input[type="search"] .status-disabled, -body input[type="tel"] .status-disabled, -.bluelib input[type="tel"] .status-disabled, -body input[type="text"] .status-disabled, -.bluelib input[type="text"] .status-disabled, -body input[type="time"] .status-disabled, -.bluelib input[type="time"] .status-disabled, -body input[type="url"] .status-disabled, -.bluelib input[type="url"] .status-disabled, -body input[type="week"] .status-disabled, -.bluelib input[type="week"] .status-disabled, -body textarea .status-disabled, -.bluelib textarea .status-disabled, -body .input-area .status-disabled, -.bluelib .input-area .status-disabled, -body select:not([multiple]) .status-disabled, -.bluelib select:not([multiple]) .status-disabled, -body .input-select .status-disabled, -.bluelib .input-select .status-disabled, -body select[multiple] .status-disabled, -.bluelib select[multiple] .status-disabled, -body .input-multiselect .status-disabled, -.bluelib .input-multiselect .status-disabled, -body button .status-disabled, -.bluelib button .status-disabled, -body input[type="submit"] .status-disabled, -.bluelib input[type="submit"] .status-disabled, -body input[type="reset"] .status-disabled, -.bluelib input[type="reset"] .status-disabled, -body .input-button .status-disabled, -.bluelib .input-button .status-disabled, -body input[type="checkbox"] .status-disabled, -.bluelib input[type="checkbox"] .status-disabled, -body .input-checkbox .status-disabled, -.bluelib .input-checkbox .status-disabled, -body input[type="radio"] .status-disabled, -.bluelib input[type="radio"] .status-disabled, -body .input-radio .status-disabled, -.bluelib .input-radio .status-disabled, -body .input .status-disabled, -.bluelib .input .status-disabled { - border-style: dashed; -} -body .input-field::placeholder, -.bluelib .input-field::placeholder, -body input[type="color"]::placeholder, -.bluelib input[type="color"]::placeholder, -body input[type="date"]::placeholder, -.bluelib input[type="date"]::placeholder, -body input[type="datetime-local"]::placeholder, -.bluelib input[type="datetime-local"]::placeholder, -body input[type="email"]::placeholder, -.bluelib input[type="email"]::placeholder, -body input[type="file"]::placeholder, -.bluelib input[type="file"]::placeholder, -body input[type="image"]::placeholder, -.bluelib input[type="image"]::placeholder, -body input[type="month"]::placeholder, -.bluelib input[type="month"]::placeholder, -body input[type="number"]::placeholder, -.bluelib input[type="number"]::placeholder, -body input[type="password"]::placeholder, -.bluelib input[type="password"]::placeholder, -body input[type="search"]::placeholder, -.bluelib input[type="search"]::placeholder, -body input[type="tel"]::placeholder, -.bluelib input[type="tel"]::placeholder, -body input[type="text"]::placeholder, -.bluelib input[type="text"]::placeholder, -body input[type="time"]::placeholder, -.bluelib input[type="time"]::placeholder, -body input[type="url"]::placeholder, -.bluelib input[type="url"]::placeholder, -body input[type="week"]::placeholder, -.bluelib input[type="week"]::placeholder, -body textarea::placeholder, -.bluelib textarea::placeholder, -body .input-area::placeholder, -.bluelib .input-area::placeholder, -body select:not([multiple])::placeholder, -.bluelib select:not([multiple])::placeholder, -body .input-select::placeholder, -.bluelib .input-select::placeholder, -body select[multiple]::placeholder, -.bluelib select[multiple]::placeholder, -body .input-multiselect::placeholder, -.bluelib .input-multiselect::placeholder, -body button::placeholder, -.bluelib button::placeholder, -body input[type="submit"]::placeholder, -.bluelib input[type="submit"]::placeholder, -body input[type="reset"]::placeholder, -.bluelib input[type="reset"]::placeholder, -body .input-button::placeholder, -.bluelib .input-button::placeholder, -body input[type="checkbox"]::placeholder, -.bluelib input[type="checkbox"]::placeholder, -body .input-checkbox::placeholder, -.bluelib .input-checkbox::placeholder, -body input[type="radio"]::placeholder, -.bluelib input[type="radio"]::placeholder, -body .input-radio::placeholder, -.bluelib .input-radio::placeholder, -body .input::placeholder, -.bluelib .input::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.41); - opacity: 1; -} -body .input-field:hover, -.bluelib .input-field:hover, -body input[type="color"]:hover, -.bluelib input[type="color"]:hover, -body input[type="date"]:hover, -.bluelib input[type="date"]:hover, -body input[type="datetime-local"]:hover, -.bluelib input[type="datetime-local"]:hover, -body input[type="email"]:hover, -.bluelib input[type="email"]:hover, -body input[type="file"]:hover, -.bluelib input[type="file"]:hover, -body input[type="image"]:hover, -.bluelib input[type="image"]:hover, -body input[type="month"]:hover, -.bluelib input[type="month"]:hover, -body input[type="number"]:hover, -.bluelib input[type="number"]:hover, -body input[type="password"]:hover, -.bluelib input[type="password"]:hover, -body input[type="search"]:hover, -.bluelib input[type="search"]:hover, -body input[type="tel"]:hover, -.bluelib input[type="tel"]:hover, -body input[type="text"]:hover, -.bluelib input[type="text"]:hover, -body input[type="time"]:hover, -.bluelib input[type="time"]:hover, -body input[type="url"]:hover, -.bluelib input[type="url"]:hover, -body input[type="week"]:hover, -.bluelib input[type="week"]:hover, -body textarea:hover, -.bluelib textarea:hover, -body .input-area:hover, -.bluelib .input-area:hover, -body select:not([multiple]):hover, -.bluelib select:not([multiple]):hover, -body .input-select:hover, -.bluelib .input-select:hover, -body select[multiple]:hover, -.bluelib select[multiple]:hover, -body .input-multiselect:hover, -.bluelib .input-multiselect:hover, -body button:hover, -.bluelib button:hover, -body input[type="submit"]:hover, -.bluelib input[type="submit"]:hover, -body input[type="reset"]:hover, -.bluelib input[type="reset"]:hover, -body .input-button:hover, -.bluelib .input-button:hover, -body input[type="checkbox"]:hover, -.bluelib input[type="checkbox"]:hover, -body .input-checkbox:hover, -.bluelib .input-checkbox:hover, -body input[type="radio"]:hover, -.bluelib input[type="radio"]:hover, -body .input-radio:hover, -.bluelib .input-radio:hover, -body .input:hover, -.bluelib .input:hover { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.6); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body .input-field:hover::placeholder, -.bluelib .input-field:hover::placeholder, -body input[type="color"]:hover::placeholder, -.bluelib input[type="color"]:hover::placeholder, -body input[type="date"]:hover::placeholder, -.bluelib input[type="date"]:hover::placeholder, -body input[type="datetime-local"]:hover::placeholder, -.bluelib input[type="datetime-local"]:hover::placeholder, -body input[type="email"]:hover::placeholder, -.bluelib input[type="email"]:hover::placeholder, -body input[type="file"]:hover::placeholder, -.bluelib input[type="file"]:hover::placeholder, -body input[type="image"]:hover::placeholder, -.bluelib input[type="image"]:hover::placeholder, -body input[type="month"]:hover::placeholder, -.bluelib input[type="month"]:hover::placeholder, -body input[type="number"]:hover::placeholder, -.bluelib input[type="number"]:hover::placeholder, -body input[type="password"]:hover::placeholder, -.bluelib input[type="password"]:hover::placeholder, -body input[type="search"]:hover::placeholder, -.bluelib input[type="search"]:hover::placeholder, -body input[type="tel"]:hover::placeholder, -.bluelib input[type="tel"]:hover::placeholder, -body input[type="text"]:hover::placeholder, -.bluelib input[type="text"]:hover::placeholder, -body input[type="time"]:hover::placeholder, -.bluelib input[type="time"]:hover::placeholder, -body input[type="url"]:hover::placeholder, -.bluelib input[type="url"]:hover::placeholder, -body input[type="week"]:hover::placeholder, -.bluelib input[type="week"]:hover::placeholder, -body textarea:hover::placeholder, -.bluelib textarea:hover::placeholder, -body .input-area:hover::placeholder, -.bluelib .input-area:hover::placeholder, -body select:not([multiple]):hover::placeholder, -.bluelib select:not([multiple]):hover::placeholder, -body .input-select:hover::placeholder, -.bluelib .input-select:hover::placeholder, -body select[multiple]:hover::placeholder, -.bluelib select[multiple]:hover::placeholder, -body .input-multiselect:hover::placeholder, -.bluelib .input-multiselect:hover::placeholder, -body button:hover::placeholder, -.bluelib button:hover::placeholder, -body input[type="submit"]:hover::placeholder, -.bluelib input[type="submit"]:hover::placeholder, -body input[type="reset"]:hover::placeholder, -.bluelib input[type="reset"]:hover::placeholder, -body .input-button:hover::placeholder, -.bluelib .input-button:hover::placeholder, -body input[type="checkbox"]:hover::placeholder, -.bluelib input[type="checkbox"]:hover::placeholder, -body .input-checkbox:hover::placeholder, -.bluelib .input-checkbox:hover::placeholder, -body input[type="radio"]:hover::placeholder, -.bluelib input[type="radio"]:hover::placeholder, -body .input-radio:hover::placeholder, -.bluelib .input-radio:hover::placeholder, -body .input:hover::placeholder, -.bluelib .input:hover::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.7); -} -body .input-field:focus, -.bluelib .input-field:focus, -body input[type="color"]:focus, -.bluelib input[type="color"]:focus, -body input[type="date"]:focus, -.bluelib input[type="date"]:focus, -body input[type="datetime-local"]:focus, -.bluelib input[type="datetime-local"]:focus, -body input[type="email"]:focus, -.bluelib input[type="email"]:focus, -body input[type="file"]:focus, -.bluelib input[type="file"]:focus, -body input[type="image"]:focus, -.bluelib input[type="image"]:focus, -body input[type="month"]:focus, -.bluelib input[type="month"]:focus, -body input[type="number"]:focus, -.bluelib input[type="number"]:focus, -body input[type="password"]:focus, -.bluelib input[type="password"]:focus, -body input[type="search"]:focus, -.bluelib input[type="search"]:focus, -body input[type="tel"]:focus, -.bluelib input[type="tel"]:focus, -body input[type="text"]:focus, -.bluelib input[type="text"]:focus, -body input[type="time"]:focus, -.bluelib input[type="time"]:focus, -body input[type="url"]:focus, -.bluelib input[type="url"]:focus, -body input[type="week"]:focus, -.bluelib input[type="week"]:focus, -body textarea:focus, -.bluelib textarea:focus, -body .input-area:focus, -.bluelib .input-area:focus, -body select:not([multiple]):focus, -.bluelib select:not([multiple]):focus, -body .input-select:focus, -.bluelib .input-select:focus, -body select[multiple]:focus, -.bluelib select[multiple]:focus, -body .input-multiselect:focus, -.bluelib .input-multiselect:focus, -body button:focus, -.bluelib button:focus, -body input[type="submit"]:focus, -.bluelib input[type="submit"]:focus, -body input[type="reset"]:focus, -.bluelib input[type="reset"]:focus, -body .input-button:focus, -.bluelib .input-button:focus, -body input[type="checkbox"]:focus, -.bluelib input[type="checkbox"]:focus, -body .input-checkbox:focus, -.bluelib .input-checkbox:focus, -body input[type="radio"]:focus, -.bluelib input[type="radio"]:focus, -body .input-radio:focus, -.bluelib .input-radio:focus, -body .input:focus, -.bluelib .input:focus { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); -} -body .input-field:focus::placeholder, -.bluelib .input-field:focus::placeholder, -body input[type="color"]:focus::placeholder, -.bluelib input[type="color"]:focus::placeholder, -body input[type="date"]:focus::placeholder, -.bluelib input[type="date"]:focus::placeholder, -body input[type="datetime-local"]:focus::placeholder, -.bluelib input[type="datetime-local"]:focus::placeholder, -body input[type="email"]:focus::placeholder, -.bluelib input[type="email"]:focus::placeholder, -body input[type="file"]:focus::placeholder, -.bluelib input[type="file"]:focus::placeholder, -body input[type="image"]:focus::placeholder, -.bluelib input[type="image"]:focus::placeholder, -body input[type="month"]:focus::placeholder, -.bluelib input[type="month"]:focus::placeholder, -body input[type="number"]:focus::placeholder, -.bluelib input[type="number"]:focus::placeholder, -body input[type="password"]:focus::placeholder, -.bluelib input[type="password"]:focus::placeholder, -body input[type="search"]:focus::placeholder, -.bluelib input[type="search"]:focus::placeholder, -body input[type="tel"]:focus::placeholder, -.bluelib input[type="tel"]:focus::placeholder, -body input[type="text"]:focus::placeholder, -.bluelib input[type="text"]:focus::placeholder, -body input[type="time"]:focus::placeholder, -.bluelib input[type="time"]:focus::placeholder, -body input[type="url"]:focus::placeholder, -.bluelib input[type="url"]:focus::placeholder, -body input[type="week"]:focus::placeholder, -.bluelib input[type="week"]:focus::placeholder, -body textarea:focus::placeholder, -.bluelib textarea:focus::placeholder, -body .input-area:focus::placeholder, -.bluelib .input-area:focus::placeholder, -body select:not([multiple]):focus::placeholder, -.bluelib select:not([multiple]):focus::placeholder, -body .input-select:focus::placeholder, -.bluelib .input-select:focus::placeholder, -body select[multiple]:focus::placeholder, -.bluelib select[multiple]:focus::placeholder, -body .input-multiselect:focus::placeholder, -.bluelib .input-multiselect:focus::placeholder, -body button:focus::placeholder, -.bluelib button:focus::placeholder, -body input[type="submit"]:focus::placeholder, -.bluelib input[type="submit"]:focus::placeholder, -body input[type="reset"]:focus::placeholder, -.bluelib input[type="reset"]:focus::placeholder, -body .input-button:focus::placeholder, -.bluelib .input-button:focus::placeholder, -body input[type="checkbox"]:focus::placeholder, -.bluelib input[type="checkbox"]:focus::placeholder, -body .input-checkbox:focus::placeholder, -.bluelib .input-checkbox:focus::placeholder, -body input[type="radio"]:focus::placeholder, -.bluelib input[type="radio"]:focus::placeholder, -body .input-radio:focus::placeholder, -.bluelib .input-radio:focus::placeholder, -body .input:focus::placeholder, -.bluelib .input:focus::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.7); -} -body .input-field[disabled]:hover, -.bluelib .input-field[disabled]:hover, -body input[type="color"][disabled]:hover, -.bluelib input[type="color"][disabled]:hover, -body input[type="date"][disabled]:hover, -.bluelib input[type="date"][disabled]:hover, -body input[type="datetime-local"][disabled]:hover, -.bluelib input[type="datetime-local"][disabled]:hover, -body input[type="email"][disabled]:hover, -.bluelib input[type="email"][disabled]:hover, -body input[type="file"][disabled]:hover, -.bluelib input[type="file"][disabled]:hover, -body input[type="image"][disabled]:hover, -.bluelib input[type="image"][disabled]:hover, -body input[type="month"][disabled]:hover, -.bluelib input[type="month"][disabled]:hover, -body input[type="number"][disabled]:hover, -.bluelib input[type="number"][disabled]:hover, -body input[type="password"][disabled]:hover, -.bluelib input[type="password"][disabled]:hover, -body input[type="search"][disabled]:hover, -.bluelib input[type="search"][disabled]:hover, -body input[type="tel"][disabled]:hover, -.bluelib input[type="tel"][disabled]:hover, -body input[type="text"][disabled]:hover, -.bluelib input[type="text"][disabled]:hover, -body input[type="time"][disabled]:hover, -.bluelib input[type="time"][disabled]:hover, -body input[type="url"][disabled]:hover, -.bluelib input[type="url"][disabled]:hover, -body input[type="week"][disabled]:hover, -.bluelib input[type="week"][disabled]:hover, -body textarea[disabled]:hover, -.bluelib textarea[disabled]:hover, -body .input-area[disabled]:hover, -.bluelib .input-area[disabled]:hover, -body select:not([multiple])[disabled]:hover, -.bluelib select:not([multiple])[disabled]:hover, -body .input-select[disabled]:hover, -.bluelib .input-select[disabled]:hover, -body select[multiple][disabled]:hover, -.bluelib select[multiple][disabled]:hover, -body .input-multiselect[disabled]:hover, -.bluelib .input-multiselect[disabled]:hover, -body button[disabled]:hover, -.bluelib button[disabled]:hover, -body input[type="submit"][disabled]:hover, -.bluelib input[type="submit"][disabled]:hover, -body input[type="reset"][disabled]:hover, -.bluelib input[type="reset"][disabled]:hover, -body .input-button[disabled]:hover, -.bluelib .input-button[disabled]:hover, -body input[type="checkbox"][disabled]:hover, -.bluelib input[type="checkbox"][disabled]:hover, -body .input-checkbox[disabled]:hover, -.bluelib .input-checkbox[disabled]:hover, -body input[type="radio"][disabled]:hover, -.bluelib input[type="radio"][disabled]:hover, -body .input-radio[disabled]:hover, -.bluelib .input-radio[disabled]:hover, -body .input[disabled]:hover, -.bluelib .input[disabled]:hover, -body .input-field .status-disabled:hover, -.bluelib .input-field .status-disabled:hover, -body input[type="color"] .status-disabled:hover, -.bluelib input[type="color"] .status-disabled:hover, -body input[type="date"] .status-disabled:hover, -.bluelib input[type="date"] .status-disabled:hover, -body input[type="datetime-local"] .status-disabled:hover, -.bluelib input[type="datetime-local"] .status-disabled:hover, -body input[type="email"] .status-disabled:hover, -.bluelib input[type="email"] .status-disabled:hover, -body input[type="file"] .status-disabled:hover, -.bluelib input[type="file"] .status-disabled:hover, -body input[type="image"] .status-disabled:hover, -.bluelib input[type="image"] .status-disabled:hover, -body input[type="month"] .status-disabled:hover, -.bluelib input[type="month"] .status-disabled:hover, -body input[type="number"] .status-disabled:hover, -.bluelib input[type="number"] .status-disabled:hover, -body input[type="password"] .status-disabled:hover, -.bluelib input[type="password"] .status-disabled:hover, -body input[type="search"] .status-disabled:hover, -.bluelib input[type="search"] .status-disabled:hover, -body input[type="tel"] .status-disabled:hover, -.bluelib input[type="tel"] .status-disabled:hover, -body input[type="text"] .status-disabled:hover, -.bluelib input[type="text"] .status-disabled:hover, -body input[type="time"] .status-disabled:hover, -.bluelib input[type="time"] .status-disabled:hover, -body input[type="url"] .status-disabled:hover, -.bluelib input[type="url"] .status-disabled:hover, -body input[type="week"] .status-disabled:hover, -.bluelib input[type="week"] .status-disabled:hover, -body textarea .status-disabled:hover, -.bluelib textarea .status-disabled:hover, -body .input-area .status-disabled:hover, -.bluelib .input-area .status-disabled:hover, -body select:not([multiple]) .status-disabled:hover, -.bluelib select:not([multiple]) .status-disabled:hover, -body .input-select .status-disabled:hover, -.bluelib .input-select .status-disabled:hover, -body select[multiple] .status-disabled:hover, -.bluelib select[multiple] .status-disabled:hover, -body .input-multiselect .status-disabled:hover, -.bluelib .input-multiselect .status-disabled:hover, -body button .status-disabled:hover, -.bluelib button .status-disabled:hover, -body input[type="submit"] .status-disabled:hover, -.bluelib input[type="submit"] .status-disabled:hover, -body input[type="reset"] .status-disabled:hover, -.bluelib input[type="reset"] .status-disabled:hover, -body .input-button .status-disabled:hover, -.bluelib .input-button .status-disabled:hover, -body input[type="checkbox"] .status-disabled:hover, -.bluelib input[type="checkbox"] .status-disabled:hover, -body .input-checkbox .status-disabled:hover, -.bluelib .input-checkbox .status-disabled:hover, -body input[type="radio"] .status-disabled:hover, -.bluelib input[type="radio"] .status-disabled:hover, -body .input-radio .status-disabled:hover, -.bluelib .input-radio .status-disabled:hover, -body .input .status-disabled:hover, -.bluelib .input .status-disabled:hover, -body .input-field[disabled]:focus, -.bluelib .input-field[disabled]:focus, -body input[type="color"][disabled]:focus, -.bluelib input[type="color"][disabled]:focus, -body input[type="date"][disabled]:focus, -.bluelib input[type="date"][disabled]:focus, -body input[type="datetime-local"][disabled]:focus, -.bluelib input[type="datetime-local"][disabled]:focus, -body input[type="email"][disabled]:focus, -.bluelib input[type="email"][disabled]:focus, -body input[type="file"][disabled]:focus, -.bluelib input[type="file"][disabled]:focus, -body input[type="image"][disabled]:focus, -.bluelib input[type="image"][disabled]:focus, -body input[type="month"][disabled]:focus, -.bluelib input[type="month"][disabled]:focus, -body input[type="number"][disabled]:focus, -.bluelib input[type="number"][disabled]:focus, -body input[type="password"][disabled]:focus, -.bluelib input[type="password"][disabled]:focus, -body input[type="search"][disabled]:focus, -.bluelib input[type="search"][disabled]:focus, -body input[type="tel"][disabled]:focus, -.bluelib input[type="tel"][disabled]:focus, -body input[type="text"][disabled]:focus, -.bluelib input[type="text"][disabled]:focus, -body input[type="time"][disabled]:focus, -.bluelib input[type="time"][disabled]:focus, -body input[type="url"][disabled]:focus, -.bluelib input[type="url"][disabled]:focus, -body input[type="week"][disabled]:focus, -.bluelib input[type="week"][disabled]:focus, -body textarea[disabled]:focus, -.bluelib textarea[disabled]:focus, -body .input-area[disabled]:focus, -.bluelib .input-area[disabled]:focus, -body select:not([multiple])[disabled]:focus, -.bluelib select:not([multiple])[disabled]:focus, -body .input-select[disabled]:focus, -.bluelib .input-select[disabled]:focus, -body select[multiple][disabled]:focus, -.bluelib select[multiple][disabled]:focus, -body .input-multiselect[disabled]:focus, -.bluelib .input-multiselect[disabled]:focus, -body button[disabled]:focus, -.bluelib button[disabled]:focus, -body input[type="submit"][disabled]:focus, -.bluelib input[type="submit"][disabled]:focus, -body input[type="reset"][disabled]:focus, -.bluelib input[type="reset"][disabled]:focus, -body .input-button[disabled]:focus, -.bluelib .input-button[disabled]:focus, -body input[type="checkbox"][disabled]:focus, -.bluelib input[type="checkbox"][disabled]:focus, -body .input-checkbox[disabled]:focus, -.bluelib .input-checkbox[disabled]:focus, -body input[type="radio"][disabled]:focus, -.bluelib input[type="radio"][disabled]:focus, -body .input-radio[disabled]:focus, -.bluelib .input-radio[disabled]:focus, -body .input[disabled]:focus, -.bluelib .input[disabled]:focus, -body .input-field .status-disabled:focus, -.bluelib .input-field .status-disabled:focus, -body input[type="color"] .status-disabled:focus, -.bluelib input[type="color"] .status-disabled:focus, -body input[type="date"] .status-disabled:focus, -.bluelib input[type="date"] .status-disabled:focus, -body input[type="datetime-local"] .status-disabled:focus, -.bluelib input[type="datetime-local"] .status-disabled:focus, -body input[type="email"] .status-disabled:focus, -.bluelib input[type="email"] .status-disabled:focus, -body input[type="file"] .status-disabled:focus, -.bluelib input[type="file"] .status-disabled:focus, -body input[type="image"] .status-disabled:focus, -.bluelib input[type="image"] .status-disabled:focus, -body input[type="month"] .status-disabled:focus, -.bluelib input[type="month"] .status-disabled:focus, -body input[type="number"] .status-disabled:focus, -.bluelib input[type="number"] .status-disabled:focus, -body input[type="password"] .status-disabled:focus, -.bluelib input[type="password"] .status-disabled:focus, -body input[type="search"] .status-disabled:focus, -.bluelib input[type="search"] .status-disabled:focus, -body input[type="tel"] .status-disabled:focus, -.bluelib input[type="tel"] .status-disabled:focus, -body input[type="text"] .status-disabled:focus, -.bluelib input[type="text"] .status-disabled:focus, -body input[type="time"] .status-disabled:focus, -.bluelib input[type="time"] .status-disabled:focus, -body input[type="url"] .status-disabled:focus, -.bluelib input[type="url"] .status-disabled:focus, -body input[type="week"] .status-disabled:focus, -.bluelib input[type="week"] .status-disabled:focus, -body textarea .status-disabled:focus, -.bluelib textarea .status-disabled:focus, -body .input-area .status-disabled:focus, -.bluelib .input-area .status-disabled:focus, -body select:not([multiple]) .status-disabled:focus, -.bluelib select:not([multiple]) .status-disabled:focus, -body .input-select .status-disabled:focus, -.bluelib .input-select .status-disabled:focus, -body select[multiple] .status-disabled:focus, -.bluelib select[multiple] .status-disabled:focus, -body .input-multiselect .status-disabled:focus, -.bluelib .input-multiselect .status-disabled:focus, -body button .status-disabled:focus, -.bluelib button .status-disabled:focus, -body input[type="submit"] .status-disabled:focus, -.bluelib input[type="submit"] .status-disabled:focus, -body input[type="reset"] .status-disabled:focus, -.bluelib input[type="reset"] .status-disabled:focus, -body .input-button .status-disabled:focus, -.bluelib .input-button .status-disabled:focus, -body input[type="checkbox"] .status-disabled:focus, -.bluelib input[type="checkbox"] .status-disabled:focus, -body .input-checkbox .status-disabled:focus, -.bluelib .input-checkbox .status-disabled:focus, -body input[type="radio"] .status-disabled:focus, -.bluelib input[type="radio"] .status-disabled:focus, -body .input-radio .status-disabled:focus, -.bluelib .input-radio .status-disabled:focus, -body .input .status-disabled:focus, -.bluelib .input .status-disabled:focus { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body .input-field[disabled]:hover::placeholder, -.bluelib .input-field[disabled]:hover::placeholder, -body input[type="color"][disabled]:hover::placeholder, -.bluelib input[type="color"][disabled]:hover::placeholder, -body input[type="date"][disabled]:hover::placeholder, -.bluelib input[type="date"][disabled]:hover::placeholder, -body input[type="datetime-local"][disabled]:hover::placeholder, -.bluelib input[type="datetime-local"][disabled]:hover::placeholder, -body input[type="email"][disabled]:hover::placeholder, -.bluelib input[type="email"][disabled]:hover::placeholder, -body input[type="file"][disabled]:hover::placeholder, -.bluelib input[type="file"][disabled]:hover::placeholder, -body input[type="image"][disabled]:hover::placeholder, -.bluelib input[type="image"][disabled]:hover::placeholder, -body input[type="month"][disabled]:hover::placeholder, -.bluelib input[type="month"][disabled]:hover::placeholder, -body input[type="number"][disabled]:hover::placeholder, -.bluelib input[type="number"][disabled]:hover::placeholder, -body input[type="password"][disabled]:hover::placeholder, -.bluelib input[type="password"][disabled]:hover::placeholder, -body input[type="search"][disabled]:hover::placeholder, -.bluelib input[type="search"][disabled]:hover::placeholder, -body input[type="tel"][disabled]:hover::placeholder, -.bluelib input[type="tel"][disabled]:hover::placeholder, -body input[type="text"][disabled]:hover::placeholder, -.bluelib input[type="text"][disabled]:hover::placeholder, -body input[type="time"][disabled]:hover::placeholder, -.bluelib input[type="time"][disabled]:hover::placeholder, -body input[type="url"][disabled]:hover::placeholder, -.bluelib input[type="url"][disabled]:hover::placeholder, -body input[type="week"][disabled]:hover::placeholder, -.bluelib input[type="week"][disabled]:hover::placeholder, -body textarea[disabled]:hover::placeholder, -.bluelib textarea[disabled]:hover::placeholder, -body .input-area[disabled]:hover::placeholder, -.bluelib .input-area[disabled]:hover::placeholder, -body select:not([multiple])[disabled]:hover::placeholder, -.bluelib select:not([multiple])[disabled]:hover::placeholder, -body .input-select[disabled]:hover::placeholder, -.bluelib .input-select[disabled]:hover::placeholder, -body select[multiple][disabled]:hover::placeholder, -.bluelib select[multiple][disabled]:hover::placeholder, -body .input-multiselect[disabled]:hover::placeholder, -.bluelib .input-multiselect[disabled]:hover::placeholder, -body button[disabled]:hover::placeholder, -.bluelib button[disabled]:hover::placeholder, -body input[type="submit"][disabled]:hover::placeholder, -.bluelib input[type="submit"][disabled]:hover::placeholder, -body input[type="reset"][disabled]:hover::placeholder, -.bluelib input[type="reset"][disabled]:hover::placeholder, -body .input-button[disabled]:hover::placeholder, -.bluelib .input-button[disabled]:hover::placeholder, -body input[type="checkbox"][disabled]:hover::placeholder, -.bluelib input[type="checkbox"][disabled]:hover::placeholder, -body .input-checkbox[disabled]:hover::placeholder, -.bluelib .input-checkbox[disabled]:hover::placeholder, -body input[type="radio"][disabled]:hover::placeholder, -.bluelib input[type="radio"][disabled]:hover::placeholder, -body .input-radio[disabled]:hover::placeholder, -.bluelib .input-radio[disabled]:hover::placeholder, -body .input[disabled]:hover::placeholder, -.bluelib .input[disabled]:hover::placeholder, -body .input-field .status-disabled:hover::placeholder, -.bluelib .input-field .status-disabled:hover::placeholder, -body input[type="color"] .status-disabled:hover::placeholder, -.bluelib input[type="color"] .status-disabled:hover::placeholder, -body input[type="date"] .status-disabled:hover::placeholder, -.bluelib input[type="date"] .status-disabled:hover::placeholder, -body input[type="datetime-local"] .status-disabled:hover::placeholder, -.bluelib input[type="datetime-local"] .status-disabled:hover::placeholder, -body input[type="email"] .status-disabled:hover::placeholder, -.bluelib input[type="email"] .status-disabled:hover::placeholder, -body input[type="file"] .status-disabled:hover::placeholder, -.bluelib input[type="file"] .status-disabled:hover::placeholder, -body input[type="image"] .status-disabled:hover::placeholder, -.bluelib input[type="image"] .status-disabled:hover::placeholder, -body input[type="month"] .status-disabled:hover::placeholder, -.bluelib input[type="month"] .status-disabled:hover::placeholder, -body input[type="number"] .status-disabled:hover::placeholder, -.bluelib input[type="number"] .status-disabled:hover::placeholder, -body input[type="password"] .status-disabled:hover::placeholder, -.bluelib input[type="password"] .status-disabled:hover::placeholder, -body input[type="search"] .status-disabled:hover::placeholder, -.bluelib input[type="search"] .status-disabled:hover::placeholder, -body input[type="tel"] .status-disabled:hover::placeholder, -.bluelib input[type="tel"] .status-disabled:hover::placeholder, -body input[type="text"] .status-disabled:hover::placeholder, -.bluelib input[type="text"] .status-disabled:hover::placeholder, -body input[type="time"] .status-disabled:hover::placeholder, -.bluelib input[type="time"] .status-disabled:hover::placeholder, -body input[type="url"] .status-disabled:hover::placeholder, -.bluelib input[type="url"] .status-disabled:hover::placeholder, -body input[type="week"] .status-disabled:hover::placeholder, -.bluelib input[type="week"] .status-disabled:hover::placeholder, -body textarea .status-disabled:hover::placeholder, -.bluelib textarea .status-disabled:hover::placeholder, -body .input-area .status-disabled:hover::placeholder, -.bluelib .input-area .status-disabled:hover::placeholder, -body select:not([multiple]) .status-disabled:hover::placeholder, -.bluelib select:not([multiple]) .status-disabled:hover::placeholder, -body .input-select .status-disabled:hover::placeholder, -.bluelib .input-select .status-disabled:hover::placeholder, -body select[multiple] .status-disabled:hover::placeholder, -.bluelib select[multiple] .status-disabled:hover::placeholder, -body .input-multiselect .status-disabled:hover::placeholder, -.bluelib .input-multiselect .status-disabled:hover::placeholder, -body button .status-disabled:hover::placeholder, -.bluelib button .status-disabled:hover::placeholder, -body input[type="submit"] .status-disabled:hover::placeholder, -.bluelib input[type="submit"] .status-disabled:hover::placeholder, -body input[type="reset"] .status-disabled:hover::placeholder, -.bluelib input[type="reset"] .status-disabled:hover::placeholder, -body .input-button .status-disabled:hover::placeholder, -.bluelib .input-button .status-disabled:hover::placeholder, -body input[type="checkbox"] .status-disabled:hover::placeholder, -.bluelib input[type="checkbox"] .status-disabled:hover::placeholder, -body .input-checkbox .status-disabled:hover::placeholder, -.bluelib .input-checkbox .status-disabled:hover::placeholder, -body input[type="radio"] .status-disabled:hover::placeholder, -.bluelib input[type="radio"] .status-disabled:hover::placeholder, -body .input-radio .status-disabled:hover::placeholder, -.bluelib .input-radio .status-disabled:hover::placeholder, -body .input .status-disabled:hover::placeholder, -.bluelib .input .status-disabled:hover::placeholder, -body .input-field[disabled]:focus::placeholder, -.bluelib .input-field[disabled]:focus::placeholder, -body input[type="color"][disabled]:focus::placeholder, -.bluelib input[type="color"][disabled]:focus::placeholder, -body input[type="date"][disabled]:focus::placeholder, -.bluelib input[type="date"][disabled]:focus::placeholder, -body input[type="datetime-local"][disabled]:focus::placeholder, -.bluelib input[type="datetime-local"][disabled]:focus::placeholder, -body input[type="email"][disabled]:focus::placeholder, -.bluelib input[type="email"][disabled]:focus::placeholder, -body input[type="file"][disabled]:focus::placeholder, -.bluelib input[type="file"][disabled]:focus::placeholder, -body input[type="image"][disabled]:focus::placeholder, -.bluelib input[type="image"][disabled]:focus::placeholder, -body input[type="month"][disabled]:focus::placeholder, -.bluelib input[type="month"][disabled]:focus::placeholder, -body input[type="number"][disabled]:focus::placeholder, -.bluelib input[type="number"][disabled]:focus::placeholder, -body input[type="password"][disabled]:focus::placeholder, -.bluelib input[type="password"][disabled]:focus::placeholder, -body input[type="search"][disabled]:focus::placeholder, -.bluelib input[type="search"][disabled]:focus::placeholder, -body input[type="tel"][disabled]:focus::placeholder, -.bluelib input[type="tel"][disabled]:focus::placeholder, -body input[type="text"][disabled]:focus::placeholder, -.bluelib input[type="text"][disabled]:focus::placeholder, -body input[type="time"][disabled]:focus::placeholder, -.bluelib input[type="time"][disabled]:focus::placeholder, -body input[type="url"][disabled]:focus::placeholder, -.bluelib input[type="url"][disabled]:focus::placeholder, -body input[type="week"][disabled]:focus::placeholder, -.bluelib input[type="week"][disabled]:focus::placeholder, -body textarea[disabled]:focus::placeholder, -.bluelib textarea[disabled]:focus::placeholder, -body .input-area[disabled]:focus::placeholder, -.bluelib .input-area[disabled]:focus::placeholder, -body select:not([multiple])[disabled]:focus::placeholder, -.bluelib select:not([multiple])[disabled]:focus::placeholder, -body .input-select[disabled]:focus::placeholder, -.bluelib .input-select[disabled]:focus::placeholder, -body select[multiple][disabled]:focus::placeholder, -.bluelib select[multiple][disabled]:focus::placeholder, -body .input-multiselect[disabled]:focus::placeholder, -.bluelib .input-multiselect[disabled]:focus::placeholder, -body button[disabled]:focus::placeholder, -.bluelib button[disabled]:focus::placeholder, -body input[type="submit"][disabled]:focus::placeholder, -.bluelib input[type="submit"][disabled]:focus::placeholder, -body input[type="reset"][disabled]:focus::placeholder, -.bluelib input[type="reset"][disabled]:focus::placeholder, -body .input-button[disabled]:focus::placeholder, -.bluelib .input-button[disabled]:focus::placeholder, -body input[type="checkbox"][disabled]:focus::placeholder, -.bluelib input[type="checkbox"][disabled]:focus::placeholder, -body .input-checkbox[disabled]:focus::placeholder, -.bluelib .input-checkbox[disabled]:focus::placeholder, -body input[type="radio"][disabled]:focus::placeholder, -.bluelib input[type="radio"][disabled]:focus::placeholder, -body .input-radio[disabled]:focus::placeholder, -.bluelib .input-radio[disabled]:focus::placeholder, -body .input[disabled]:focus::placeholder, -.bluelib .input[disabled]:focus::placeholder, -body .input-field .status-disabled:focus::placeholder, -.bluelib .input-field .status-disabled:focus::placeholder, -body input[type="color"] .status-disabled:focus::placeholder, -.bluelib input[type="color"] .status-disabled:focus::placeholder, -body input[type="date"] .status-disabled:focus::placeholder, -.bluelib input[type="date"] .status-disabled:focus::placeholder, -body input[type="datetime-local"] .status-disabled:focus::placeholder, -.bluelib input[type="datetime-local"] .status-disabled:focus::placeholder, -body input[type="email"] .status-disabled:focus::placeholder, -.bluelib input[type="email"] .status-disabled:focus::placeholder, -body input[type="file"] .status-disabled:focus::placeholder, -.bluelib input[type="file"] .status-disabled:focus::placeholder, -body input[type="image"] .status-disabled:focus::placeholder, -.bluelib input[type="image"] .status-disabled:focus::placeholder, -body input[type="month"] .status-disabled:focus::placeholder, -.bluelib input[type="month"] .status-disabled:focus::placeholder, -body input[type="number"] .status-disabled:focus::placeholder, -.bluelib input[type="number"] .status-disabled:focus::placeholder, -body input[type="password"] .status-disabled:focus::placeholder, -.bluelib input[type="password"] .status-disabled:focus::placeholder, -body input[type="search"] .status-disabled:focus::placeholder, -.bluelib input[type="search"] .status-disabled:focus::placeholder, -body input[type="tel"] .status-disabled:focus::placeholder, -.bluelib input[type="tel"] .status-disabled:focus::placeholder, -body input[type="text"] .status-disabled:focus::placeholder, -.bluelib input[type="text"] .status-disabled:focus::placeholder, -body input[type="time"] .status-disabled:focus::placeholder, -.bluelib input[type="time"] .status-disabled:focus::placeholder, -body input[type="url"] .status-disabled:focus::placeholder, -.bluelib input[type="url"] .status-disabled:focus::placeholder, -body input[type="week"] .status-disabled:focus::placeholder, -.bluelib input[type="week"] .status-disabled:focus::placeholder, -body textarea .status-disabled:focus::placeholder, -.bluelib textarea .status-disabled:focus::placeholder, -body .input-area .status-disabled:focus::placeholder, -.bluelib .input-area .status-disabled:focus::placeholder, -body select:not([multiple]) .status-disabled:focus::placeholder, -.bluelib select:not([multiple]) .status-disabled:focus::placeholder, -body .input-select .status-disabled:focus::placeholder, -.bluelib .input-select .status-disabled:focus::placeholder, -body select[multiple] .status-disabled:focus::placeholder, -.bluelib select[multiple] .status-disabled:focus::placeholder, -body .input-multiselect .status-disabled:focus::placeholder, -.bluelib .input-multiselect .status-disabled:focus::placeholder, -body button .status-disabled:focus::placeholder, -.bluelib button .status-disabled:focus::placeholder, -body input[type="submit"] .status-disabled:focus::placeholder, -.bluelib input[type="submit"] .status-disabled:focus::placeholder, -body input[type="reset"] .status-disabled:focus::placeholder, -.bluelib input[type="reset"] .status-disabled:focus::placeholder, -body .input-button .status-disabled:focus::placeholder, -.bluelib .input-button .status-disabled:focus::placeholder, -body input[type="checkbox"] .status-disabled:focus::placeholder, -.bluelib input[type="checkbox"] .status-disabled:focus::placeholder, -body .input-checkbox .status-disabled:focus::placeholder, -.bluelib .input-checkbox .status-disabled:focus::placeholder, -body input[type="radio"] .status-disabled:focus::placeholder, -.bluelib input[type="radio"] .status-disabled:focus::placeholder, -body .input-radio .status-disabled:focus::placeholder, -.bluelib .input-radio .status-disabled:focus::placeholder, -body .input .status-disabled:focus::placeholder, -.bluelib .input .status-disabled:focus::placeholder { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.41); -} -body .input-field:optional, -.bluelib .input-field:optional, -body input[type="color"]:optional, -.bluelib input[type="color"]:optional, -body input[type="date"]:optional, -.bluelib input[type="date"]:optional, -body input[type="datetime-local"]:optional, -.bluelib input[type="datetime-local"]:optional, -body input[type="email"]:optional, -.bluelib input[type="email"]:optional, -body input[type="file"]:optional, -.bluelib input[type="file"]:optional, -body input[type="image"]:optional, -.bluelib input[type="image"]:optional, -body input[type="month"]:optional, -.bluelib input[type="month"]:optional, -body input[type="number"]:optional, -.bluelib input[type="number"]:optional, -body input[type="password"]:optional, -.bluelib input[type="password"]:optional, -body input[type="search"]:optional, -.bluelib input[type="search"]:optional, -body input[type="tel"]:optional, -.bluelib input[type="tel"]:optional, -body input[type="text"]:optional, -.bluelib input[type="text"]:optional, -body input[type="time"]:optional, -.bluelib input[type="time"]:optional, -body input[type="url"]:optional, -.bluelib input[type="url"]:optional, -body input[type="week"]:optional, -.bluelib input[type="week"]:optional, -body textarea:optional, -.bluelib textarea:optional, -body .input-area:optional, -.bluelib .input-area:optional, -body select:not([multiple]):optional, -.bluelib select:not([multiple]):optional, -body .input-select:optional, -.bluelib .input-select:optional, -body select[multiple]:optional, -.bluelib select[multiple]:optional, -body .input-multiselect:optional, -.bluelib .input-multiselect:optional, -body button:optional, -.bluelib button:optional, -body input[type="submit"]:optional, -.bluelib input[type="submit"]:optional, -body input[type="reset"]:optional, -.bluelib input[type="reset"]:optional, -body .input-button:optional, -.bluelib .input-button:optional, -body input[type="checkbox"]:optional, -.bluelib input[type="checkbox"]:optional, -body .input-checkbox:optional, -.bluelib .input-checkbox:optional, -body input[type="radio"]:optional, -.bluelib input[type="radio"]:optional, -body .input-radio:optional, -.bluelib .input-radio:optional, -body .input:optional, -.bluelib .input:optional, -body .input-field:optional::placeholder, -.bluelib .input-field:optional::placeholder, -body input[type="color"]:optional::placeholder, -.bluelib input[type="color"]:optional::placeholder, -body input[type="date"]:optional::placeholder, -.bluelib input[type="date"]:optional::placeholder, -body input[type="datetime-local"]:optional::placeholder, -.bluelib input[type="datetime-local"]:optional::placeholder, -body input[type="email"]:optional::placeholder, -.bluelib input[type="email"]:optional::placeholder, -body input[type="file"]:optional::placeholder, -.bluelib input[type="file"]:optional::placeholder, -body input[type="image"]:optional::placeholder, -.bluelib input[type="image"]:optional::placeholder, -body input[type="month"]:optional::placeholder, -.bluelib input[type="month"]:optional::placeholder, -body input[type="number"]:optional::placeholder, -.bluelib input[type="number"]:optional::placeholder, -body input[type="password"]:optional::placeholder, -.bluelib input[type="password"]:optional::placeholder, -body input[type="search"]:optional::placeholder, -.bluelib input[type="search"]:optional::placeholder, -body input[type="tel"]:optional::placeholder, -.bluelib input[type="tel"]:optional::placeholder, -body input[type="text"]:optional::placeholder, -.bluelib input[type="text"]:optional::placeholder, -body input[type="time"]:optional::placeholder, -.bluelib input[type="time"]:optional::placeholder, -body input[type="url"]:optional::placeholder, -.bluelib input[type="url"]:optional::placeholder, -body input[type="week"]:optional::placeholder, -.bluelib input[type="week"]:optional::placeholder, -body textarea:optional::placeholder, -.bluelib textarea:optional::placeholder, -body .input-area:optional::placeholder, -.bluelib .input-area:optional::placeholder, -body select:not([multiple]):optional::placeholder, -.bluelib select:not([multiple]):optional::placeholder, -body .input-select:optional::placeholder, -.bluelib .input-select:optional::placeholder, -body select[multiple]:optional::placeholder, -.bluelib select[multiple]:optional::placeholder, -body .input-multiselect:optional::placeholder, -.bluelib .input-multiselect:optional::placeholder, -body button:optional::placeholder, -.bluelib button:optional::placeholder, -body input[type="submit"]:optional::placeholder, -.bluelib input[type="submit"]:optional::placeholder, -body input[type="reset"]:optional::placeholder, -.bluelib input[type="reset"]:optional::placeholder, -body .input-button:optional::placeholder, -.bluelib .input-button:optional::placeholder, -body input[type="checkbox"]:optional::placeholder, -.bluelib input[type="checkbox"]:optional::placeholder, -body .input-checkbox:optional::placeholder, -.bluelib .input-checkbox:optional::placeholder, -body input[type="radio"]:optional::placeholder, -.bluelib input[type="radio"]:optional::placeholder, -body .input-radio:optional::placeholder, -.bluelib .input-radio:optional::placeholder, -body .input:optional::placeholder, -.bluelib .input:optional::placeholder { - font-style: italic; -} -body .input-field:focus-visible, -.bluelib .input-field:focus-visible, -body input[type="color"]:focus-visible, -.bluelib input[type="color"]:focus-visible, -body input[type="date"]:focus-visible, -.bluelib input[type="date"]:focus-visible, -body input[type="datetime-local"]:focus-visible, -.bluelib input[type="datetime-local"]:focus-visible, -body input[type="email"]:focus-visible, -.bluelib input[type="email"]:focus-visible, -body input[type="file"]:focus-visible, -.bluelib input[type="file"]:focus-visible, -body input[type="image"]:focus-visible, -.bluelib input[type="image"]:focus-visible, -body input[type="month"]:focus-visible, -.bluelib input[type="month"]:focus-visible, -body input[type="number"]:focus-visible, -.bluelib input[type="number"]:focus-visible, -body input[type="password"]:focus-visible, -.bluelib input[type="password"]:focus-visible, -body input[type="search"]:focus-visible, -.bluelib input[type="search"]:focus-visible, -body input[type="tel"]:focus-visible, -.bluelib input[type="tel"]:focus-visible, -body input[type="text"]:focus-visible, -.bluelib input[type="text"]:focus-visible, -body input[type="time"]:focus-visible, -.bluelib input[type="time"]:focus-visible, -body input[type="url"]:focus-visible, -.bluelib input[type="url"]:focus-visible, -body input[type="week"]:focus-visible, -.bluelib input[type="week"]:focus-visible, -body textarea:focus-visible, -.bluelib textarea:focus-visible, -body .input-area:focus-visible, -.bluelib .input-area:focus-visible, -body select:not([multiple]):focus-visible, -.bluelib select:not([multiple]):focus-visible, -body .input-select:focus-visible, -.bluelib .input-select:focus-visible, -body select[multiple]:focus-visible, -.bluelib select[multiple]:focus-visible, -body .input-multiselect:focus-visible, -.bluelib .input-multiselect:focus-visible, -body button:focus-visible, -.bluelib button:focus-visible, -body input[type="submit"]:focus-visible, -.bluelib input[type="submit"]:focus-visible, -body input[type="reset"]:focus-visible, -.bluelib input[type="reset"]:focus-visible, -body .input-button:focus-visible, -.bluelib .input-button:focus-visible, -body input[type="checkbox"]:focus-visible, -.bluelib input[type="checkbox"]:focus-visible, -body .input-checkbox:focus-visible, -.bluelib .input-checkbox:focus-visible, -body input[type="radio"]:focus-visible, -.bluelib input[type="radio"]:focus-visible, -body .input-radio:focus-visible, -.bluelib .input-radio:focus-visible, -body .input:focus-visible, -.bluelib .input:focus-visible { - outline: none; -} -body .input-field, -.bluelib .input-field, -body input[type="color"], -.bluelib input[type="color"], -body input[type="date"], -.bluelib input[type="date"], -body input[type="datetime-local"], -.bluelib input[type="datetime-local"], -body input[type="email"], -.bluelib input[type="email"], -body input[type="file"], -.bluelib input[type="file"], -body input[type="image"], -.bluelib input[type="image"], -body input[type="month"], -.bluelib input[type="month"], -body input[type="number"], -.bluelib input[type="number"], -body input[type="password"], -.bluelib input[type="password"], -body input[type="search"], -.bluelib input[type="search"], -body input[type="tel"], -.bluelib input[type="tel"], -body input[type="text"], -.bluelib input[type="text"], -body input[type="time"], -.bluelib input[type="time"], -body input[type="url"], -.bluelib input[type="url"], -body input[type="week"], -.bluelib input[type="week"] { - cursor: text; - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; - padding: 6px; -} -body textarea, -.bluelib textarea, -body .input-area, -.bluelib .input-area { - cursor: text; - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; - padding: 6px; -} -body select:not([multiple]), -.bluelib select:not([multiple]), -body .input-select, -.bluelib .input-select { - cursor: context-menu; - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - body select:not([multiple]) option, - .bluelib select:not([multiple]) option, - body .input-select option, - .bluelib .input-select option, - body select:not([multiple]) .input-option, - .bluelib select:not([multiple]) .input-option, - body .input-select .input-option, - .bluelib .input-select .input-option, - body select:not([multiple]) optgroup, - .bluelib select:not([multiple]) optgroup, - body .input-select optgroup, - .bluelib .input-select optgroup, - body select:not([multiple]) .input-optgroup, - .bluelib select:not([multiple]) .input-optgroup, - body .input-select .input-optgroup, - .bluelib .input-select .input-optgroup { - background-color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - } -} -body select[multiple], -.bluelib select[multiple], -body .input-multiselect, -.bluelib .input-multiselect { - cursor: vertical-text; - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; -} -body select:not([multiple]), -.bluelib select:not([multiple]), -body .input-select, -.bluelib .input-select, -body select[multiple], -.bluelib select[multiple], -body .input-multiselect, -.bluelib .input-multiselect { - padding: 6px 4px; -} -body select:not([multiple]) option, -.bluelib select:not([multiple]) option, -body .input-select option, -.bluelib .input-select option, -body select[multiple] option, -.bluelib select[multiple] option, -body .input-multiselect option, -.bluelib .input-multiselect option, -body select:not([multiple]) .input-option, -.bluelib select:not([multiple]) .input-option, -body .input-select .input-option, -.bluelib .input-select .input-option, -body select[multiple] .input-option, -.bluelib select[multiple] .input-option, -body .input-multiselect .input-option, -.bluelib .input-multiselect .input-option { - font-weight: normal; - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - padding: 4px; -} -body select:not([multiple]) optgroup, -.bluelib select:not([multiple]) optgroup, -body .input-select optgroup, -.bluelib .input-select optgroup, -body select[multiple] optgroup, -.bluelib select[multiple] optgroup, -body .input-multiselect optgroup, -.bluelib .input-multiselect optgroup, -body select:not([multiple]) .input-optgroup, -.bluelib select:not([multiple]) .input-optgroup, -body .input-select .input-optgroup, -.bluelib .input-select .input-optgroup, -body select[multiple] .input-optgroup, -.bluelib select[multiple] .input-optgroup, -body .input-multiselect .input-optgroup, -.bluelib .input-multiselect .input-optgroup { - font-weight: bold; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); - padding: 4px; -} -body select:not([multiple]) optgroup option, -.bluelib select:not([multiple]) optgroup option, -body .input-select optgroup option, -.bluelib .input-select optgroup option, -body select[multiple] optgroup option, -.bluelib select[multiple] optgroup option, -body .input-multiselect optgroup option, -.bluelib .input-multiselect optgroup option, -body select:not([multiple]) .input-optgroup option, -.bluelib select:not([multiple]) .input-optgroup option, -body .input-select .input-optgroup option, -.bluelib .input-select .input-optgroup option, -body select[multiple] .input-optgroup option, -.bluelib select[multiple] .input-optgroup option, -body .input-multiselect .input-optgroup option, -.bluelib .input-multiselect .input-optgroup option, -body select:not([multiple]) optgroup .input-option, -.bluelib select:not([multiple]) optgroup .input-option, -body .input-select optgroup .input-option, -.bluelib .input-select optgroup .input-option, -body select[multiple] optgroup .input-option, -.bluelib select[multiple] optgroup .input-option, -body .input-multiselect optgroup .input-option, -.bluelib .input-multiselect optgroup .input-option, -body select:not([multiple]) .input-optgroup .input-option, -.bluelib select:not([multiple]) .input-optgroup .input-option, -body .input-select .input-optgroup .input-option, -.bluelib .input-select .input-optgroup .input-option, -body select[multiple] .input-optgroup .input-option, -.bluelib select[multiple] .input-optgroup .input-option, -body .input-multiselect .input-optgroup .input-option, -.bluelib .input-multiselect .input-optgroup .input-option { - padding: 4px 20px; -} -body select:not([multiple]) optgroup option::before, -.bluelib select:not([multiple]) optgroup option::before, -body .input-select optgroup option::before, -.bluelib .input-select optgroup option::before, -body select[multiple] optgroup option::before, -.bluelib select[multiple] optgroup option::before, -body .input-multiselect optgroup option::before, -.bluelib .input-multiselect optgroup option::before, -body select:not([multiple]) .input-optgroup option::before, -.bluelib select:not([multiple]) .input-optgroup option::before, -body .input-select .input-optgroup option::before, -.bluelib .input-select .input-optgroup option::before, -body select[multiple] .input-optgroup option::before, -.bluelib select[multiple] .input-optgroup option::before, -body .input-multiselect .input-optgroup option::before, -.bluelib .input-multiselect .input-optgroup option::before, -body select:not([multiple]) optgroup .input-option::before, -.bluelib select:not([multiple]) optgroup .input-option::before, -body .input-select optgroup .input-option::before, -.bluelib .input-select optgroup .input-option::before, -body select[multiple] optgroup .input-option::before, -.bluelib select[multiple] optgroup .input-option::before, -body .input-multiselect optgroup .input-option::before, -.bluelib .input-multiselect optgroup .input-option::before, -body select:not([multiple]) .input-optgroup .input-option::before, -.bluelib select:not([multiple]) .input-optgroup .input-option::before, -body .input-select .input-optgroup .input-option::before, -.bluelib .input-select .input-optgroup .input-option::before, -body select[multiple] .input-optgroup .input-option::before, -.bluelib select[multiple] .input-optgroup .input-option::before, -body .input-multiselect .input-optgroup .input-option::before, -.bluelib .input-multiselect .input-optgroup .input-option::before { - content: ""; -} -body button, -.bluelib button, -body input[type="submit"], -.bluelib input[type="submit"], -body input[type="reset"], -.bluelib input[type="reset"], -body .input-button, -.bluelib .input-button { - cursor: pointer; - display: inline-flex; - justify-content: center; - align-items: center; - padding: 6px 16px; - border-radius: 4px; -} -body button:active, -.bluelib button:active, -body input[type="submit"]:active, -.bluelib input[type="submit"]:active, -body input[type="reset"]:active, -.bluelib input[type="reset"]:active, -body .input-button:active, -.bluelib .input-button:active { - border-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); -} -body button [disabled]:active, -.bluelib button [disabled]:active, -body input[type="submit"] [disabled]:active, -.bluelib input[type="submit"] [disabled]:active, -body input[type="reset"] [disabled]:active, -.bluelib input[type="reset"] [disabled]:active, -body .input-button [disabled]:active, -.bluelib .input-button [disabled]:active, -body button .status-disabled:active, -.bluelib button .status-disabled:active, -body input[type="submit"] .status-disabled:active, -.bluelib input[type="submit"] .status-disabled:active, -body input[type="reset"] .status-disabled:active, -.bluelib input[type="reset"] .status-disabled:active, -body .input-button .status-disabled:active, -.bluelib .input-button .status-disabled:active { - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.315); - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); -} -body input[type="checkbox"], -.bluelib input[type="checkbox"], -body .input-checkbox, -.bluelib .input-checkbox, -body input[type="radio"], -.bluelib input[type="radio"], -body .input-radio, -.bluelib .input-radio { - appearance: none; - cursor: pointer; - width: 24px; - height: 24px; - border-width: 2px; - display: inline-flex; - justify-content: center; - align-items: center; -} -body input[type="checkbox"]::before, -.bluelib input[type="checkbox"]::before, -body .input-checkbox::before, -.bluelib .input-checkbox::before, -body input[type="radio"]::before, -.bluelib input[type="radio"]::before, -body .input-radio::before, -.bluelib .input-radio::before { - display: block; - content: ""; - width: 14px; - height: 14px; -} -body input[type="checkbox"]:checked::before, -.bluelib input[type="checkbox"]:checked::before, -body .input-checkbox:checked::before, -.bluelib .input-checkbox:checked::before, -body input[type="radio"]:checked::before, -.bluelib input[type="radio"]:checked::before, -body .input-radio:checked::before, -.bluelib .input-radio:checked::before { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.9); -} -body input[type="checkbox"]:hover:checked::before, -.bluelib input[type="checkbox"]:hover:checked::before, -body .input-checkbox:hover:checked::before, -.bluelib .input-checkbox:hover:checked::before, -body input[type="radio"]:hover:checked::before, -.bluelib input[type="radio"]:hover:checked::before, -body .input-radio:hover:checked::before, -.bluelib .input-radio:hover:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 10)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 10)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 10)), 1); -} -body input[type="checkbox"]:focus:checked::before, -.bluelib input[type="checkbox"]:focus:checked::before, -body .input-checkbox:focus:checked::before, -.bluelib .input-checkbox:focus:checked::before, -body input[type="radio"]:focus:checked::before, -.bluelib input[type="radio"]:focus:checked::before, -body .input-radio:focus:checked::before, -.bluelib .input-radio:focus:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body input[type="checkbox"]:active:checked::before, -.bluelib input[type="checkbox"]:active:checked::before, -body .input-checkbox:active:checked::before, -.bluelib .input-checkbox:active:checked::before, -body input[type="radio"]:active:checked::before, -.bluelib input[type="radio"]:active:checked::before, -body .input-radio:active:checked::before, -.bluelib .input-radio:active:checked::before { - background-color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body input[type="checkbox"], -.bluelib input[type="checkbox"], -body .input-checkbox, -.bluelib .input-checkbox { - border-radius: 4px; -} -body input[type="checkbox"]::before, -.bluelib input[type="checkbox"]::before, -body .input-checkbox::before, -.bluelib .input-checkbox::before { - border-radius: 2px; -} -body input[type="radio"], -.bluelib input[type="radio"], -body .input-radio, -.bluelib .input-radio { - border-radius: 100%; -} -body input[type="radio"]::before, -.bluelib input[type="radio"]::before, -body .input-radio::before, -.bluelib .input-radio::before { - border-radius: 100%; -} -body form, -.bluelib form, -body .form, -.bluelib .form { - display: grid; - align-items: center; - row-gap: 4px; - column-gap: 8px; - grid-template-columns: minmax(auto, 1fr) 5fr; -} -body form > label, -.bluelib form > label, -body .form > label, -.bluelib .form > label, -body form .form-label, -.bluelib form .form-label, -body .form .form-label, -.bluelib .form .form-label { - grid-column: 1; - justify-self: end; - text-align: right; - --bluelib-color-r: var(--bluelib-accent-r); - --bluelib-color-g: var(--bluelib-accent-g); - --bluelib-color-b: var(--bluelib-accent-b); - font-weight: 500; -} -body form > .input-field, -.bluelib form > .input-field, -body .form > .input-field, -.bluelib .form > .input-field, -body form input[type="color"], -.bluelib form input[type="color"], -body .form input[type="color"], -.bluelib .form input[type="color"], -body form input[type="date"], -.bluelib form input[type="date"], -body .form input[type="date"], -.bluelib .form input[type="date"], -body form input[type="datetime-local"], -.bluelib form input[type="datetime-local"], -body .form input[type="datetime-local"], -.bluelib .form input[type="datetime-local"], -body form input[type="email"], -.bluelib form input[type="email"], -body .form input[type="email"], -.bluelib .form input[type="email"], -body form input[type="file"], -.bluelib form input[type="file"], -body .form input[type="file"], -.bluelib .form input[type="file"], -body form input[type="image"], -.bluelib form input[type="image"], -body .form input[type="image"], -.bluelib .form input[type="image"], -body form input[type="month"], -.bluelib form input[type="month"], -body .form input[type="month"], -.bluelib .form input[type="month"], -body form input[type="number"], -.bluelib form input[type="number"], -body .form input[type="number"], -.bluelib .form input[type="number"], -body form input[type="password"], -.bluelib form input[type="password"], -body .form input[type="password"], -.bluelib .form input[type="password"], -body form input[type="search"], -.bluelib form input[type="search"], -body .form input[type="search"], -.bluelib .form input[type="search"], -body form input[type="tel"], -.bluelib form input[type="tel"], -body .form input[type="tel"], -.bluelib .form input[type="tel"], -body form input[type="text"], -.bluelib form input[type="text"], -body .form input[type="text"], -.bluelib .form input[type="text"], -body form input[type="time"], -.bluelib form input[type="time"], -body .form input[type="time"], -.bluelib .form input[type="time"], -body form input[type="url"], -.bluelib form input[type="url"], -body .form input[type="url"], -.bluelib .form input[type="url"], -body form input[type="week"], -.bluelib form input[type="week"], -body .form input[type="week"], -.bluelib .form input[type="week"], -body form > textarea, -.bluelib form > textarea, -body .form > textarea, -.bluelib .form > textarea, -body form .input-area, -.bluelib form .input-area, -body .form .input-area, -.bluelib .form .input-area, -body form > select:not([multiple]), -.bluelib form > select:not([multiple]), -body .form > select:not([multiple]), -.bluelib .form > select:not([multiple]), -body form .input-select, -.bluelib form .input-select, -body .form .input-select, -.bluelib .form .input-select, -body form > select[multiple], -.bluelib form > select[multiple], -body .form > select[multiple], -.bluelib .form > select[multiple], -body form .input-multiselect, -.bluelib form .input-multiselect, -body .form .input-multiselect, -.bluelib .form .input-multiselect, -body form > button, -.bluelib form > button, -body .form > button, -.bluelib .form > button, -body form input[type="submit"], -.bluelib form input[type="submit"], -body .form input[type="submit"], -.bluelib .form input[type="submit"], -body form input[type="reset"], -.bluelib form input[type="reset"], -body .form input[type="reset"], -.bluelib .form input[type="reset"], -body form .input-button, -.bluelib form .input-button, -body .form .input-button, -.bluelib .form .input-button, -body form > input[type="checkbox"], -.bluelib form > input[type="checkbox"], -body .form > input[type="checkbox"], -.bluelib .form > input[type="checkbox"], -body form .input-checkbox, -.bluelib form .input-checkbox, -body .form .input-checkbox, -.bluelib .form .input-checkbox, -body form > input[type="radio"], -.bluelib form > input[type="radio"], -body .form > input[type="radio"], -.bluelib .form > input[type="radio"], -body form .input-radio, -.bluelib form .input-radio, -body .form .input-radio, -.bluelib .form .input-radio, -body form > .input, -.bluelib form > .input, -body .form > .input, -.bluelib .form > .input, -body form .form-input, -.bluelib form .form-input, -body .form .form-input, -.bluelib .form .form-input { - grid-column: 2; - justify-self: stretch; -} -body form .form-group, -.bluelib form .form-group, -body .form .form-group, -.bluelib .form .form-group { - grid-column: 2; - display: flex; - gap: 8px 16px; - justify-content: space-evenly; - align-items: center; - flex-wrap: wrap; - width: 100%; - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.03); - padding: 6px; - border-radius: 4px; -} -body form .form-group > label, -.bluelib form .form-group > label, -body .form .form-group > label, -.bluelib .form .form-group > label, -body form .form-group .form-group-label, -.bluelib form .form-group .form-group-label, -body .form .form-group .form-group-label, -.bluelib .form .form-group .form-group-label { - display: flex; - gap: 6px; - justify-content: center; - align-items: center; - text-align: left; -} -body form .form-group .form-group-row, -.bluelib form .form-group .form-group-row, -body .form .form-group .form-group-row, -.bluelib .form .form-group .form-group-row { - flex-basis: 100%; - justify-content: start; -} -body form .form-row, -.bluelib form .form-row, -body .form .form-row, -.bluelib .form .form-row { - grid-column-start: 1; - grid-column-end: 3; - display: flex; - gap: 8px; - justify-content: center; - align-items: center; - width: 100%; - margin-top: 8px; - margin-bottom: 8px; -} -body form .form-row .panel, -.bluelib form .form-row .panel, -body .form .form-row .panel, -.bluelib .form .form-row .panel { - margin: 0; -} -body form .form-row:first-child, -.bluelib form .form-row:first-child, -body .form .form-row:first-child, -.bluelib .form .form-row:first-child { - margin-top: 0; -} -body form .form-row:last-child, -.bluelib form .form-row:last-child, -body .form .form-row:last-child, -.bluelib .form .form-row:last-child { - margin-bottom: 0; -} -body h1, -.bluelib h1, -body h2, -.bluelib h2, -body h3, -.bluelib h3, -body h4, -.bluelib h4, -body h5, -.bluelib h5, -body h6, -.bluelib h6, -body .heading, -.bluelib .heading { - text-align: center; - --bluelib-color-r: var(--bluelib-accent-r); - --bluelib-color-g: var(--bluelib-accent-g); - --bluelib-color-b: var(--bluelib-accent-b); - font-family: var(--bluelib-title-family); - font-weight: var(--bluelib-title-weight); -} -body a, -.bluelib a, -body .anchor, -.bluelib .anchor { - text-decoration-line: underline; - text-decoration-thickness: 1px; -} -body a:focus-visible, -.bluelib a:focus-visible, -body .anchor:focus-visible, -.bluelib .anchor:focus-visible { - text-decoration-thickness: 2px; -} -body a:hover, -.bluelib a:hover, -body .anchor:hover, -.bluelib .anchor:hover, -body a:focus, -.bluelib a:focus, -body .anchor:focus, -.bluelib .anchor:focus { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body a:active, -.bluelib a:active, -body .anchor:active, -.bluelib .anchor:active { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 60)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 60)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 60)), 1); -} -body a:not([href]), -.bluelib a:not([href]), -body .anchor-broken, -.bluelib .anchor-broken { - cursor: not-allowed; - --bluelib-color-r: var(--bluelib-broken-r); - --bluelib-color-g: var(--bluelib-broken-g); - --bluelib-color-b: var(--bluelib-broken-b); - text-decoration-style: dashed; -} -body a:not([href]):hover, -.bluelib a:not([href]):hover, -body .anchor-broken:hover, -.bluelib .anchor-broken:hover, -body a:not([href]):focus, -.bluelib a:not([href]):focus, -body .anchor-broken:focus, -.bluelib .anchor-broken:focus, -body a:not([href]):active, -.bluelib a:not([href]):active, -body .anchor-broken:active, -.bluelib .anchor-broken:active { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); -} -body a[href], -.bluelib a[href], -body .anchor-link, -.bluelib .anchor-link { - cursor: pointer; - --bluelib-color-r: var(--bluelib-link-r); - --bluelib-color-g: var(--bluelib-link-g); - --bluelib-color-b: var(--bluelib-link-b); - text-decoration-style: solid; -} -body a[href]:visited, -.bluelib a[href]:visited, -body .anchor-link:visited, -.bluelib .anchor-link:visited { - --bluelib-color-r: var(--bluelib-visited-r); - --bluelib-color-g: var(--bluelib-visited-g); - --bluelib-color-b: var(--bluelib-visited-b); -} -body a[download], -.bluelib a[download], -body .anchor-download, -.bluelib .anchor-download { - cursor: pointer; - --bluelib-color-r: var(--bluelib-download-r); - --bluelib-color-g: var(--bluelib-download-g); - --bluelib-color-b: var(--bluelib-download-b); - text-decoration-style: solid; -} -body .details, -.bluelib .details, -body details, -.bluelib details { - margin-top: 8px; - margin-bottom: 8px; -} -body .details > .details-summary, -.bluelib .details > .details-summary, -body details > .details-summary, -.bluelib details > .details-summary, -body .details > summary, -.bluelib .details > summary, -body details > summary, -.bluelib details > summary { - cursor: pointer; - font-size: larger; - user-select: none; -} -body .details > .details-summary:hover, -.bluelib .details > .details-summary:hover, -body details > .details-summary:hover, -.bluelib details > .details-summary:hover, -body .details > summary:hover, -.bluelib .details > summary:hover, -body details > summary:hover, -.bluelib details > summary:hover { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), 1); -} -body .details > .details-summary:focus-visible, -.bluelib .details > .details-summary:focus-visible, -body details > .details-summary:focus-visible, -.bluelib details > .details-summary:focus-visible, -body .details > summary:focus-visible, -.bluelib .details > summary:focus-visible, -body details > summary:focus-visible, -.bluelib details > summary:focus-visible { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), 1); -} -body .details > .details-summary:active, -.bluelib .details > .details-summary:active, -body details > .details-summary:active, -.bluelib details > .details-summary:active, -body .details > summary:active, -.bluelib .details > summary:active, -body details > summary:active, -.bluelib details > summary:active { - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 90)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 90)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 90)), 1); -} -body .details > .details-content, -.bluelib .details > .details-content, -body details > .details-content, -.bluelib details > .details-content, -body .details > :not(summary), -.bluelib .details > :not(summary), -body details > :not(summary), -.bluelib details > :not(summary) { - margin-top: 0.5rem; -} -body .details > .details, -.bluelib .details > .details, -body details > .details, -.bluelib details > .details, -body .details > details, -.bluelib .details > details, -body details > details, -.bluelib details > details { - margin-left: 16px; -} -body rp, -.bluelib rp, -body .ruby-parenthesis, -.bluelib .ruby-parenthesis { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.125); -} -body rt, -.bluelib rt, -body .ruby-text, -.bluelib .ruby-text { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.6); -} -body .todo, -.bluelib .todo { - background-color: #292F33; - --bluelib-color-r: 255; - --bluelib-color-g: 204; - --bluelib-color-b: 77; - border-color: #FFCC4D; -} -body abbr, -.bluelib abbr, -body .semantic-abbr, -.bluelib .semantic-abbr { - cursor: help; - text-decoration: underline 1px dotted currentColor; -} -body b, -.bluelib b, -body .semantic-b, -.bluelib .semantic-b { - font-weight: 500; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body cite, -.bluelib cite, -body .semantic-cite, -.bluelib .semantic-cite { - font-variant: small-caps; -} -body code, -.bluelib code, -body .semantic-code, -.bluelib .semantic-code { - font-family: var(--bluelib-code-family); - font-weight: var(--bluelib-code-weight); -} -body dfn, -.bluelib dfn, -body .semantic-dfn, -.bluelib .semantic-dfn { - text-decoration: underline 1px solid currentColor; - font-style: italic; -} -body em, -.bluelib em, -body .semantic-em, -.bluelib .semantic-em { - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body i, -.bluelib i, -body .semantic-i, -.bluelib .semantic-i { - font-style: italic; -} -body kbd, -.bluelib kbd, -body .semantic-kbd, -.bluelib .semantic-kbd { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - border-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 1); - color: rgb(var(--bluelib-background-r), var(--bluelib-background-g), var(--bluelib-background-b)); - border-width: 3px; - border-style: ridge; - padding: 1px; - font-family: var(--bluelib-code-family); - font-weight: var(--bluelib-code-weight); -} -body kbd > kbd, -.bluelib kbd > kbd, -body .semantic-kbd > kbd, -.bluelib .semantic-kbd > kbd, -body kbd .semantic-kbd, -.bluelib kbd .semantic-kbd, -body .semantic-kbd .semantic-kbd, -.bluelib .semantic-kbd .semantic-kbd { - border: none; - padding: 0; - background-color: transparent; - font-weight: 600; -} -body .semantic-kbd-press, -.bluelib .semantic-kbd-press { - border-style: inset; -} -body .semantic-kbd-release, -.bluelib .semantic-kbd-release { - border-style: outset; -} -body mark, -.bluelib mark, -body .semantic-mark, -.bluelib .semantic-mark { - background-color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.22); - color: rgba(calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), 1); -} -body pre, -.bluelib pre, -body .semantic-pre, -.bluelib .semantic-pre { - font-family: var(--bluelib-text-family); - font-weight: var(--bluelib-text-weight); -} -body q, -.bluelib q, -body .semantic-q, -.bluelib .semantic-q { - font-style: oblique; -} -body q:before, -.bluelib q:before, -body .semantic-q:before, -.bluelib .semantic-q:before, -body q:after, -.bluelib q:after, -body .semantic-q:after, -.bluelib .semantic-q:after { - color: rgba(var(--bluelib-color-r), var(--bluelib-color-g), var(--bluelib-color-b), 0.505); -} -body s, -.bluelib s, -body .semantic-s, -.bluelib .semantic-s { - text-decoration: currentColor line-through; -} -body samp, -.bluelib samp, -body .semantic-samp, -.bluelib .semantic-samp { - background-color: rgba(calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), 1); - color: rgba(calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), 1); -} -body small, -.bluelib small, -body .semantic-small, -.bluelib .semantic-small { - font-size: smaller; -} -body strong, -.bluelib strong, -body .semantic-strong, -.bluelib .semantic-strong { - font-weight: 800; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body u, -.bluelib u, -body .semantic-u, -.bluelib .semantic-u { - text-decoration: currentColor underline; -} -body var, -.bluelib var, -body .semantic-var, -.bluelib .semantic-var { - font-style: normal; - color: rgb(var(--bluelib-accent-r), var(--bluelib-accent-g), var(--bluelib-accent-b)); -} -body .color-red, -.bluelib .color-red { - --bluelib-color-r: var(--bluelib-red-r); - --bluelib-color-g: var(--bluelib-red-g); - --bluelib-color-b: var(--bluelib-red-b); -} -body .color-orange, -.bluelib .color-orange { - --bluelib-color-r: var(--bluelib-orange-r); - --bluelib-color-g: var(--bluelib-orange-g); - --bluelib-color-b: var(--bluelib-orange-b); -} -body .color-yellow, -.bluelib .color-yellow { - --bluelib-color-r: var(--bluelib-yellow-r); - --bluelib-color-g: var(--bluelib-yellow-g); - --bluelib-color-b: var(--bluelib-yellow-b); -} -body .color-lime, -.bluelib .color-lime, -body .color-green, -.bluelib .color-green { - --bluelib-color-r: var(--bluelib-lime-r); - --bluelib-color-g: var(--bluelib-lime-g); - --bluelib-color-b: var(--bluelib-lime-b); -} -body .color-cyan, -.bluelib .color-cyan { - --bluelib-color-r: var(--bluelib-cyan-r); - --bluelib-color-g: var(--bluelib-cyan-g); - --bluelib-color-b: var(--bluelib-cyan-b); -} -body .color-blue, -.bluelib .color-blue { - --bluelib-color-r: var(--bluelib-blue-r); - --bluelib-color-g: var(--bluelib-blue-g); - --bluelib-color-b: var(--bluelib-blue-b); -} -body .color-magenta, -.bluelib .color-magenta { - --bluelib-color-r: var(--bluelib-magenta-r); - --bluelib-color-g: var(--bluelib-magenta-g); - --bluelib-color-b: var(--bluelib-magenta-b); -} -body .color-gray, -.bluelib .color-gray { - --bluelib-color-r: var(--bluelib-gray-r); - --bluelib-color-g: var(--bluelib-gray-g); - --bluelib-color-b: var(--bluelib-gray-b); -} -body .special-remove, -.bluelib .special-remove { - display: none !important; -} -body .special-hide, -.bluelib .special-hide { - visibility: hidden !important; -} -body .special-block-center, -.bluelib .special-block-center { - margin-left: auto !important; - margin-right: auto !important; -} diff --git a/dist/skeleton.root.less b/dist/skeleton.root.less deleted file mode 100644 index 6d35450..0000000 --- a/dist/skeleton.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/skeleton.less"; diff --git a/dist/sophon.apache.css b/dist/sophon.apache.css deleted file mode 100644 index 6259729..0000000 --- a/dist/sophon.apache.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 0; - --bluelib-background-g: 0; - --bluelib-background-b: 20; - --bluelib-foreground-r: 45; - --bluelib-foreground-g: 154; - --bluelib-foreground-b: 255; - --bluelib-accent-r: 250; - --bluelib-accent-g: 250; - --bluelib-accent-b: 250; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 134; - --bluelib-visited-g: 33; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/sophon.apache.less b/dist/sophon.apache.less deleted file mode 100644 index e52f4eb..0000000 --- a/dist/sophon.apache.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/apache.less"; -@import (less) "../src/themes/sophon.less"; diff --git a/dist/sophon.module.css b/dist/sophon.module.css deleted file mode 100644 index 4902c9a..0000000 --- a/dist/sophon.module.css +++ /dev/null @@ -1,48 +0,0 @@ -.bluelib { - --bluelib-background-r: 0; - --bluelib-background-g: 0; - --bluelib-background-b: 20; - --bluelib-foreground-r: 45; - --bluelib-foreground-g: 154; - --bluelib-foreground-b: 255; - --bluelib-accent-r: 250; - --bluelib-accent-g: 250; - --bluelib-accent-b: 250; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 134; - --bluelib-visited-g: 33; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/sophon.module.less b/dist/sophon.module.less deleted file mode 100644 index 3ebb16d..0000000 --- a/dist/sophon.module.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/module.less"; -@import (less) "../src/themes/sophon.less"; diff --git a/dist/sophon.root.css b/dist/sophon.root.css deleted file mode 100644 index 6259729..0000000 --- a/dist/sophon.root.css +++ /dev/null @@ -1,49 +0,0 @@ -body, -.bluelib { - --bluelib-background-r: 0; - --bluelib-background-g: 0; - --bluelib-background-b: 20; - --bluelib-foreground-r: 45; - --bluelib-foreground-g: 154; - --bluelib-foreground-b: 255; - --bluelib-accent-r: 250; - --bluelib-accent-g: 250; - --bluelib-accent-b: 250; - --bluelib-link-r: 0; - --bluelib-link-g: 202; - --bluelib-link-b: 202; - --bluelib-broken-r: 255; - --bluelib-broken-g: 116; - --bluelib-broken-b: 0; - --bluelib-visited-r: 134; - --bluelib-visited-g: 33; - --bluelib-visited-b: 207; - --bluelib-download-r: 0; - --bluelib-download-g: 211; - --bluelib-download-b: 137; - --bluelib-red-r: 255; - --bluelib-red-g: 125; - --bluelib-red-b: 125; - --bluelib-orange-r: 255; - --bluelib-orange-g: 187; - --bluelib-orange-b: 125; - --bluelib-yellow-r: 255; - --bluelib-yellow-g: 255; - --bluelib-yellow-b: 125; - --bluelib-lime-r: 125; - --bluelib-lime-g: 255; - --bluelib-lime-b: 125; - --bluelib-cyan-r: 125; - --bluelib-cyan-g: 255; - --bluelib-cyan-b: 255; - --bluelib-blue-r: 125; - --bluelib-blue-g: 125; - --bluelib-blue-b: 255; - --bluelib-magenta-r: 255; - --bluelib-magenta-g: 125; - --bluelib-magenta-b: 255; - --bluelib-gray-r: 187; - --bluelib-gray-g: 187; - --bluelib-gray-b: 187; - --bluelib-polarity: 1; -} diff --git a/dist/sophon.root.less b/dist/sophon.root.less deleted file mode 100644 index 7b473ea..0000000 --- a/dist/sophon.root.less +++ /dev/null @@ -1,3 +0,0 @@ -@import (less) "../src/utils/mixins.less"; -@import (less) "../src/targets/root.less"; -@import (less) "../src/themes/sophon.less"; diff --git a/examples/Space_Default.jpg b/examples/Space_Default.jpg new file mode 100644 index 0000000..c92e2f8 Binary files /dev/null and b/examples/Space_Default.jpg differ diff --git a/examples/index.css b/examples/index.css new file mode 100644 index 0000000..6c4e188 --- /dev/null +++ b/examples/index.css @@ -0,0 +1,35 @@ +body { + background-image: url("Space_Default.jpg"); + background-attachment: fixed; + background-size: cover; +} + +.chapter-1 > .panel, +.chapter-2 > .panel, +.chapter-3 > .panel, +.chapter-4 > .panel, +.chapter-5 > .panel, +.chapter-6 > .panel, +.chapter-7 > .panel, +.chapter-8 > .panel, +.chapter-9 > .panel { + min-width: 200px; +} + +.panel .chapter-1 > .panel, +.panel .chapter-2 > .panel, +.panel .chapter-3 > .panel, +.panel .chapter-4 > .panel, +.panel .chapter-5 > .panel, +.panel .chapter-6 > .panel, +.panel .chapter-7 > .panel, +.panel .chapter-8 > .panel, +.panel .chapter-9 > .panel { + min-width: unset; +} + +article { + margin: 0 auto; + + max-width: 1600px; +} diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 0000000..5fbca84 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,1485 @@ + + + + + + + + + + + + + + + Bluelib + + +
+
+
+
+
+

+ Bluelib 5.0.0 +

+
+

+ Panels +

+
+

+ Panel +

+

+ A Panel is a container styled with a slight background color and no borders. +

+
+ Hello world! I am a Panel! +
+
+
+

+ Box +

+

+ A Box is a container adding borders of all four sides to the base appearence of a Panel. +

+
+ This Box contains a hidden Snake. 🐍 +
+
+
+

+ Dialog +

+

+ A Dialog is a container adding a left border to the base appearence of a Panel. +

+
+ Snake? Snake??? SNAKEEEEEEE! +
+
+
+

+ Parenthesis +

+

+ A Parenthesis is a container styled as a Panel and with smaller text. +

+
+ I think we lost the Snake... +
+
+
+

+ Panel usage +

+

+ When using Bluelib, text should always be either an header or inside a Panel. +

+

+ Since Panels often denote "sections" of text, they should usually be <section> elements. +

+

+ When they are only used cosmetically, <div> elements should be used instead. +

+

+ When used to create forms, they may also be <form> elements. +

+
+
+

+ Box usage +

+

+ A Box creates a visible separation between the content inside it and the content outside it, and should be used when this separation is desired, like when describing a topic (like here). +

+

+ To achieve the best visual style, Boxes should always be the outmost panels: you should never place a Box inside a Panel or a Dialog, but you can place one inside another Box. +

+
+
+

+ Dialog usage +

+

+ A Dialog creates a visible indentation of the content inside it, and should be used when this indentation is desired, like in quotes or examples. +

+

+ When containing a quote, they should use <blockquote> elements. +

+

+ Like Boxes, Dialogs should never be placed into containers with less borders than them, such as Panels. +

+
+
+

+ Parenthesis usage +

+

+ A Parenthesis removes importance from its contents, and therefore makes for a great container for notes or additional information about a topic. +

+

+ Having no borders, they should be considered as Panels when placing them: never add Boxes or Dialogs inside them. +

+
+
+
+
+

+ Nesting +

+

+ As you have seen in the sections before, panels can be nested many times (until the text becomes undistinguishable)! +

+
+

+ Like this! +

+
+

+ How deep does this Panel hole go? +

+
+

+ BWOON. +

+
+

+ BWOON. +

+
+

+ BWOON. +

+ +
+
+
+
+
+
+
+
+

+ Chapters +

+
+

+ Chapter +

+

+ A chapter is a grouping of an heading and multiple panels containing tightly related information. +

+

+ They split their children into a preset amount of columns: this one, for example, splits panels into two columns. +

+

+ The maximum number of columns in a chapter is 9; beyond that, you'll need to write your own chapter code. +

+
+
+

+ Panel heights +

+

+ In a chapter, all panels on a row inherit the height of the tallest panel in it, so that no empty space is left. +

+
+
+

+ Element floats +

+

+ A float is a utility class to align items in panels without having to write CSS. +

+

+ For example, if a panel has some empty space, elements can be made to float to the bottom, which can be useful for example for buttons in sibling panels. +

+
+
+

+ Auto-wrapping +

+

+ Panels in a numbered chapter will automatically wrap if their contents won't fit horizontally. +

+

+ Wrapped panels' heights ignore the height of panels in other rows. +

+

+ To have a constant height, one has to be set manually. +

+
+
+

+ Auto-sizing +

+

+ Panels in a "zero" chapter will instead automatically resize to fit everything in a single row. +

+
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+ 9 +
+
+ 10 +
+
+

+ To set a constant width, one has to be set manually. +

+
+
+
+

+ Modifiers +

+
+

+ Fade +

+

+ The fade modifier reduces the opacity of the elements it is applied to. +

+
+

+ I'm a faded box! +

+
+

+ I'm faded too! +

+
+

+ But they can be faded more. +

+
+
+
+
+
+

+ Mark +

+

+ The mark modifier distinguishes the elements it is applied to from the surrounding ones by applying a strong color contrast. +

+
+

+ Think of it like an highlighter, but for anything! +

+
+

+ Which can be nested to negate its effect. +

+
+

+ Up to 3 times and not any more. +

+
+
+
+
+
+

+ To do +

+

+ The todo modifier emphasises that the contents of the elements it is applied to are not correct or final. +

+
+

+ Like this! +

+
+

+ As with other modifiers, it is inherited. +

+
+

+ And it does nothing if reapplied. +

+
+
+
+
+
+

+ Color modifiers +

+

+ The color modifiers change the colors of the elements they are applied to. +

+
+
+

+ Red +

+

+ * warns angrily! +

+
+
+

+ Yellow +

+

+ * warns. +

+
+
+

+ Green +

+

+ * is a success! +

+
+
+

+ Cyan +

+

+ * informs... +

+
+
+

+ Blue +

+

+ * annotates +

+
+
+

+ Magenta +

+

+ * asks a question? +

+
+
+
+
+
+

+ Separators +

+
+

+ Separator +

+

+ A separator is a horizontal line that fills all the horizontal space available on a panel, forcing a line wrap. +

+
+
+ Top Text +
+
+
+

+ Light separator +

+

+ A light separator is a less eye-catching separator, to be used if the regular separator distracts too much from the flow of the text. +

+
+
+ Bottom Text +
+
+
+

+ Heavy separator +

+

+ A heavy separator is a very eye-catching separator, to be used if the regular separator isn't apparent enough. +

+
+
+ Bottom Text 2: Electric Boogaloo +
+
+
+
+

+ Lists +

+
+

+ Ordered list +

+

+ A ordered list displays a series of items whose order is relevant. +

+
    +
  1. First
  2. +
  3. Second
  4. +
  5. Third
  6. +
  7. Fourth
  8. +
  9. Fifth
  10. +
  11. Sixth
  12. +
  13. Seventh
  14. +
  15. Eight
  16. +
  17. Ninth
  18. +
  19. Tenth
  20. +
  21. Eleventh
  22. +
  23. Twelfth
  24. +
+
+
+

+ Unordered list +

+

+ An unordered list displays a series of items whose order is irrelevant. +

+
    +
  • First
  • +
  • Second
  • +
  • Third
  • +
  • Fourth
  • +
  • Fifth
  • +
  • Sixth
  • +
  • Seventh
  • +
  • Eight
  • +
  • Ninth
  • +
  • Tenth
  • +
  • Eleventh
  • +
  • Twelfth
  • +
+
+
+
+

+ Glossaries +

+
+

+ Definition list +

+

+ A definition list displays a series of term-description pairs. +

+
+
+ Term +
+
+ Description +
+
+ Other term +
+
+ Other description +
+
+
+
+

+ Collapsible details +

+

+ A details element hides its contents, displaying only a summary until either the marker or the summary itself is activated. +

+
+ Something +

+ Something else +

+
+
+ Something more +

+ Something different +

+
+
+
+
+

+ Text +

+
+

+ Anchors +

+

+ An anchor is an interactable element which can be clicked to go to a different page, or a different part of the same page, or to perform an action with a different application! +

+
+

+ Do you want to go to example.org? +

+

+ Or perhaps to the chapter about glossaries? +

+

+ Or perhaps to download Big Buck Bunny with a torrent client? +

+
+
+
+
+
+

+ Idiomatic expressions +

+

+ An idiomatic expression should be used when a domain-specific term is used. +

+
+

+ This is an idiomatic expression. +

+
+
+
+

+ Emphasis +

+

+ An emphasis should be used when a certain word should be stressed more than the others in a text. +

+
+

+ You're doing what?! +

+
+
+
+

+ Bring attention +

+

+ An attention-bringer element denotes parts of text as more important than the others. +

+
+

+ I used attention-bringers basically everywhere in this page. +

+
+
+
+

+ Strong importance +

+

+ A strong importance element denotes parts of text that are even more important than the ones denoted by attention-bringers. +

+
+

+ Pls notice me senpai!!1! +

+
+
+
+

+ Unarticulated annotations +

+

+ An unarticulated annotation denotes parts of text that were given an annotation without any comment. +

+
+

+ Just look at the headers of level 3 of these panels! +

+
+
+
+

+ Strike +

+

+ A strike marks a part of text as incorrect. +

+
+

+ I'm plotting to conquer the world completely innocent and not an evil villain! +

+
+
+
+

+ Inserted and deleted text +

+

+ When comparing changes to a text, parts of it can be marked as inserted or removed. +

+
+

+ Bluelib 5.0.0 +

+
    +
  • Added: more bugs
  • +
  • Removed: cool features
  • +
+
+
+
+

+ Small comment +

+

+ A small comment element denotes a part of a text as less important than the others. +

+

+ It can be considered the opposite of attention-bringers, and similar to the parenthesis panel. +

+
+

+ Bluelib is great! I'm joking, of course. +

+
+
+
+

+ Preformatted text +

+

+ A preformatted text element denotes text where lines and positioning are significant; this prevents them from being rearranged by the browser. +

+

+ It should be used for poetry, code, ASCII art, kaomoji, etc. +

+
+
   mm    mmmm    mmm  mmmmm  mmmmm
+   ##   #"   " m"   "   #      #
+  #  #  "#mmm  #        #      #
+  #mm#      "# #        #      #
+ #    # "mmm#"  "mmm" mm#mm  mm#mm
+
+
+
+

+ Code snippets +

+

+ A code element denotes that its contents are some kind of code (probably belonging to a programming language). +

+

+ If displayed as a block instead of inline, it should be used with a preformatted text element. +

+
+

+ How to create a section.panel with Bluelib: +

+
<div class="panel">
+    <p>
+        Contents
+    </p>
+</div>
+
+
+
+

+ Sample input and output +

+

+ Input samples and output samples from a computer have elements which denote them, and are formatted appropriately. +

+

+ A sample inside another creates emphasises the individual element, creating a combination. +

+
+

+ If you press Ctrl+Alt+Del, something will happen! +

+

+ If you're on Windows, a menu will appear, and one of the options will say Task Manager. +

+
+
+
+

+ Variables +

+

+ A variable denotes a placeholder for something in a formula or algorithm. +

+
+

+ Sum: Whatever + Anything = Something +

+
+
+
+

+ Quotes and citations +

+

+ A quote element indicates an inline quote, and may be optionally include a citation element indicating the source of the quote. +

+
+

+ Objection!
+ —Phoenix Wright, Ace Attorney +

+
+
+
+

+ Definitions +

+

+ A definition element indicates the term that is being defined in the contained paragraph. +

+
+

+ This definition example is getting a bit too meta for my tastes. +

+
+
+
+

+ Abbreviations +

+

+ An abbreviation element marks its contents as an acronym or abbreviation and allows the user to view the expanded abbreviation by hovering it with the mouse. +

+

+ Note that no mobile browsers currently support this feature, so you'll have to manually provide an alternative for mobile users to see the full abbreviation. +

+
+

+ Two companies against each other: BLU vs. RED! +

+
+
+
+

+ Ruby +

+

+ A ruby text element is text with small annotations above, commonly used in East Asian texts. +

+
+

+ + Mo /ˈmɒ/ + de // + na // + +

+

+ + 漢 (kan) + 字 (ji) + +

+

+ + 明日 (ashita) + +

+
+
+
+
+

+ Tables +

+
+

+ Table +

+

+ A table is an element whose children are aligned in a grid. +

+ + + + + + + + + + + + + + + + + + + + + +
EmojiMeaning
🙂Slightly Smiling Face
🌑New Moon
🌚New Moon with Face
+
+
+

+ Table caption +

+

+ Tables can have captions attached to their top. +

+ + + + + + + + + + + + + + + + + + + + + + +
+ Apple emoji meanings +
EmojiMeaning
🍎Red Apple
🍏Green Apple
Hopefully a square with F8FF written inside it
+

+ Tables can also have headings and captions attached to their bottom. +

+ + + + + + + + + + + + + + +
+ Pear emoji meanings +
🍐Pear
EmojiMeaning
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Table panels +

+

+ A table panel is a special table which is rendered as a panel. +

+

+ This table in particular is rendered as a box panel, and is about what two brothers think of the following objects: +

+
MarioLuigi
TablesThey're cool and allow you to do cool stuffThey need chairs to be useful
FlexboxesThey're very usefulNot enough flexible for me
GridsI love themBleargh
Overall<30/10
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Table dialogs +

+

+ Panel tables can also be dialogs and parentheses. +

+

+ This table in particular is a dialog panel, and is about example features for a robot: +

+
FeatureDescription
BaseAll the base features of your home robot!
ExtraEverything a robot should be able to do, plus an infinite bubblewrap dispenser!
SuperThe robot is now armed with a non-free printer, and is ready to conquer the world!
UltimateA time machine has been embedded into the robot, and it is free to use it at will.
+ + + + + + + + + + + + + + + + + + + +
+

+ Cell modifiers +

+

+ Cells in tables have modifiers applied like all elements. +

+

+ This table in particular is for a game of tic-tac-toe. +

+
OX
XXO
XO
+
+
+

+ Images +

+
+

+ Default +

+

+ Images are automatically centered and resized to fit the panel they are in. +

+ Neon Ice Cream +
+
+

+ Limited +

+

+ Images can be limited to prevent them from taking up too much screen space, like the previous one did. +

+
+

+ Half +

+

+ The following image has a limit of half the vertical viewport: +

+ Neon ice cream +
+

+ Quarter +

+

+ The following image has a limit of a quarter of the vertical viewport: +

+ Neon ice cream +
+
+
+

+ Inputs +

+
+

+ Input +

+

+ An Input is an interactive element which allows the user to interact with the web page. +

+
+
+
+
+

+ Field +

+

+ A Field is an Input which allows the user to enter single-line free-form text. +

+
+

+ +

+

+ +

+

+ +

+
+
+

+ Special types of Fields +

+

+ A Field may require a particular type of data, such as an email or a phone number. +

+
+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+
+
+
+

+ Area +

+

+ An Area is a resizable Input which allows the user to enter multi-line free-form text. +

+
+

+ +

+
+
+
+

+ Select +

+

+ A Select is an Input which allow the user to select between one of multiple options. +

+
+

+ +

+
+
+
+

+ Multiselect +

+

+ A Multiselect is an Input which allows the user to enable or disable multiple options. +

+

+ Be aware that the average user will probably not know how to interact with the Multiselect: to select options not adjacent to each other on a desktop browser, it requires holding the Ctrl key. +

+
+

+ +

+
+
+
+

+ Radio +

+

+ Radios are Inputs which, like a Select, allow the user to select between one of multiple options when grouped together. +

+
+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+
+
+
+

+ Checkbox +

+

+ Checkboxes are Inputs which, like a Multiselect, allows the user to enable or disable multiple options when grouped together. +

+
+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+
+
+
+

+ Color +

+

+ A Color (Input) is an Input which allows the user to select a RGB color. +

+

+ Since browsers usually delegate the rendering of this element to the operating system, it cannot be styled. +

+
+

+ +

+
+
+
+

+ File +

+

+ A File is an Input which allows the user to upload a file from their computer. +

+

+ Since browsers usually delegate the rendering of this element to the operating system, it cannot be styled. +

+
+

+ +

+
+
+
+

+ Range +

+

+ A Range is an Input which allows the user to inaccurately select a value from a given range. +

+
+

+ +

+
+
+
+

+ Button +

+

+ A Button is an Input which the user can click to trigger an action. +

+
+

+ +

+

+ + +

+
+
+
+
+

+ Forms +

+
+

+ Form +

+

+ An form is a non-interactive element which positions Inputs in commonly used ways. +

+
+
+

+ Flex form +

+

+ A flex form is a block form aligning labels and inputs to a pseudo-grid. +

+
+

+ Life University Enrolment Form +

+

+ Please enter your personal details here: +

+ + + +

+ Now, please enter some information about yourself: +

+ + + +

+ Finally, you can submit the form, and see whether you'll be accepted or not: +

+ +
+
+
+
+
+
+ + + diff --git a/index.html b/index.html deleted file mode 100644 index be58c75..0000000 --- a/index.html +++ /dev/null @@ -1,1123 +0,0 @@ - - - - - - - - - - - - - - - Bluelib - - -
-
-
-
-
-

- Bluelib Example -

-
-

- Panels -

-
-

- Panel -

-

- A panel is a base container styled with a slight background color and no borders. -

-
-
-

- Box -

-

- A box panel is a generic container styled as a box with borders on all four sides. -

-
-
-

- Dialog -

-

- A dialog panel is a container for quotes or dialogues, styled as a box with only the left border. -

-
-
-

- Parenthesis -

-

- A parenthesis panel is a container for text tangentially related to the rest of the document, styled as a box with smaller text and no borders. -

-
-
-
-

- Dimensions -

-

- Panels always have a 8px margin and 8px of padding. -

-
- Hi! This is me talking to you, the reader! -
-
- I'm testing panel dimensions! -
-
- See? The margin between these dialog panels is consistent! -
-
-
-

- Nesting -

-

- Panels of any kind can be infinitely nested. -

-
-

- Like this! -

-
-

- How deep does this rabbit hole go? -

-
-

- BWOON. -

-
-

- BWOON. -

-
-

- BWOON. -

-
- - - PANELCEPTION. - - -
-
-
-
-
-
-
-
-
-

- Chapters -

-
-

- Chapter -

-

- A chapter is a grouping of an heading and multiple panels containing tightly related information. -

-
- You're seeing one right now! -
-
-
-

- Panel heights -

-

- In a chapter, all panels on a row inherit the height of the tallest panel in it, so that no empty space is left. -

-
-
-

- Auto-wrapping -

-

- Additionaly, panels in a chapter will automatically wrap if their contents won't fit horizontally. -

-
-
-
-

- Force-wrapping -

-

- You can override the automatic wrapping and manually decide where a chapter should wrap by inserting a force-wrap element where you want the chapter to wrap. -

-
- Due to technical limitations, panels will have a 16px vertical margin when a chapter is force-wrapped. -
-
-
-
-

- Separators -

-
-

- Separator -

-

- A separator is a horizontal line that fills all the horizontal space available on a panel, forcing a line wrap. -

-
-
- Top Text -
-
-
-
-

- Light separator -

-

- A light separator is a slightly more transparent separator, to be used if the regular color distracts too much from the flow of the text. -

-
-
- Bottom Text -
-
-
-

- Heavy separator -

-

- A heavy separator is a non-transparent separator, to be used if the regular color isn't apparent enough. -

-
-
- Bottom Text 2: Electric Boogaloo -
-
-
-
-

- Images -

-
-

- Default -

-

- Images are automatically centered and resized to fit the panel they are in. -

- Neon Ice Cream -
-
-
-

- Limited -

-

- Images can be limited to prevent them from taking up too much screen space. -

-
-
-

- Half -

-

- The following image has a limit of half the vertical viewport: -

- Neon ice cream -
-
-

- Quarter -

-

- The following image has a limit of a quarter of the vertical viewport: -

- Neon ice cream -
-
-
-
-
-

- Figures -

-

- Images can be wrapped in a figure element to semantically provide additional detail to them. -

-
- Neon ice cream -
- Neon ice cream -
-
-
-
-
-

- Tables -

-
-

- Table -

-

- A table is an element displaying data aligned and ordered by rows and columns. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
What do the brothers think of the following elements?
MarioLuigi
TablesThey're cool and allow you to do cool stuffThey need chairs to be useful
FlexboxesThey're very usefulNot enough flexible for me
GridsI love themBleargh
Overall<30/10
-

- Elements in tables can be marked to increase their contrast with the rest. -

- - - - - - - - - - - - - - - - - - - -
- A game of tic-tac-toe. -
OX
XXO
XO
-

- Captions can are above the table by default, but they can be moved below the table. -

- - - - - - - - - - - - - - - - - - - - -
- HTML elements tier list -
S<span>
A<a>
B<body>
C<caption>
-
-
-
-

- Lists -

-
-

- Unordered lists -

-

- An unordered list displays a series of items whose order is irrelevant. -

-
    -
  • This
  • -
  • That
  • -
  • Wooper
  • -
  • Quagsire
  • -
-
-
-

- Ordered lists -

-

- A ordered list displays a series of items whose order is relevant. -

-
    -
  1. Gold
  2. -
  3. Silver
  4. -
  5. Bronze
  6. -
  7. Iron
  8. -
-
-
-

- Description lists -

-

- A description list displays a series of name-description pairs. -

-
-
- Key -
-
- Value -
-
- Other key -
-
- Other value -
-
-
-
-
-

- Status -

-
-

- Disabled -

-

- An element can be disabled to make it partially transparent, non-interactable and displaying the not-allowed cursor when hovered. -

-

- Any element, from a <span> to a chapter, can be disabled. -

-
- Please re-enable me, I did nothing wrong! I just said "AMOGU—" -
-
-
-
-

- Inputs -

-
-

- Input -

-

- An input is an interactive element that allows the reader of the page to interact with it. -

-

- They come in multiple kinds: -

-
-
-

- Field -

-

- A field is an input where the user can insert text with their keyboard. -

- - -
-
-

- Select -

-

- A select is an input where the user can select one between multiple options. -

- - -
-
-
-

- Area -

-

- A area is a resizable input where the user can insert multiple lines of text with their keyboard. -

- - -
-
-

- Multiselect -

-

- A multiselect is an input where the user can select many options from a list. -

- - -
-
-
-

- Radio -

-

- A radio is an input which the user can either select or not, deselecting the other radios with the same name. -

-

- -

-

- -

-

- -

-
-
-

- Checkbox -

-

- A checkbox is an input which the user can either select or not. -

-

- -

-

- -

-

- -

-
-
-
-

- Button -

-

- A button is an input which the user can interact with to trigger a reaction. -

-

- -

-
-
-
-
-
-

- Forms -

-
-

- Forms, labels and inputs -

-

- A form is a grouping of labels and inputs with the same purpose, with the former describing what should be entered in the latter. -

-
- - - - - - - - - - -
-
-
-
-

- Form groups -

-

- Inputs such as radios or checkboxes should be grouped together when inserted in a form. -

-
- -
- - - -
-
-

- Groups automatically wrap if the inputs don't fit on a single line. -

-
- -
- - - - - - - -
-
-
-
-

- Row groups -

-

- A row group is a form group where the inputs are arranged vertically instead of horizontally. -

-
- -
- - - - -
-
-
-
-
-

- Form rows -

-

- Forms can also contain form rows, elements which ignore the form columns and instead take up the whole row. -

-
- - - - -
-
- By logging in, you agree to sell your soul to the devil and to be tracked endlessly by all the corporations in the world. -
-
- - -
- - -
-
-
-
-
-

- Common elements -

-
-

- Headings -

-

- An heading is the title of an article, chapter or panel. -

-
-

Level-1

-

Level-2

-

Level-3

-

Level-4

-
Level-5
-
Level-6
-
-
- Generally, panels look nicer if they start with a level-3 heading, but you may use whichever you want, as Bluelib will automatically handle the margin. -
-
-
-

- Anchors -

-

- An anchor is a part of text which can be clicked to move to a different page or part of page. -

-
- This is an example anchor. -
-

- Visited anchors have a slightly different color. -

-
- Take me to Wikipedia! -
-

- Anchors with no destination are colored differently, so that the page author can notice and fix them. -

-
- This link leads nowhere. -
-

- Anchors which start a download or open an external program have also have slightly different color. -

-
- Download - - GIMP 2.10.24 - -
-
-
-

- Details and summaries -

-

- A detail is an element which collapses the elements inside until its summary is clicked. -

-
-
- - There's something inside here... - -
- You found a HP Up! Maximum HP increased by 25. -
-
-
-

- Multiple can be displayed aside each other, and can also be nested. -

-
-
- - There's something else inside... - -
- You found Pipis. It exploded. -
-
-
- - There's another item... - -
- You found recursion! -
-
- - Recursion - -
- No, Winnie, don't eat recursion... -
-
- - Recursion - -
- Please, stop... -
-
- - Recursion - -
- NOOOOOOOOOOOOOOO! -
-
- - Recursion - -
- Stack overflow. -
-
-
-
-
-
-
-
-
-
-

- Annotations -

-
-

- Ruby text -

-

- A ruby is an inline element with annotations above the text. -

-

- - Mo /ˈmɒ/ - de // - na // - -

-

- - 漢 (kan) - 字 (ji) - -

-

- - 明日 (ashita) - -

-
-
-

- Todo -

-

- A todo is a panel marked as incomplete by the page author. -

-

- Its colors are palette-independent and derive from the 🚧 Twemoji. -

-
- 🚧 Write a description for this element. -
-
- 🚧 Write a description for this element. -
-
- 🚧 Write a description for this element. -
-
- 🚧 Write a description for this element. -
-
-
-
-

- Semantics -

-
-

- Semantics -

-

- A semantic is an inline element having a specific meaning defined by the HTML specification. -

-

- Here's the full list of them: -

-
    -
  • - Abbreviation -
  • -
  • - Bring Attention -
  • -
  • - Citation -
  • -
  • - Code with variable -
  • -
  • - Definition -
  • -
  • - Emphasis -
  • -
  • - Idiomatic Text -
  • -
  • - Mark Text -
  • -
  • - Inline Quotation -
  • -
  • - Strikethrough -
  • -
  • - Sample Output -
  • -
  • - Side Comment -
  • -
  • - Strong Importance -
  • -
  • - Unarticulated Annotation -
  • -
  • - Variable -
  • -
-
-
-
-

- Keyboard -

-

- A keyboard element represents an interaction of the user with any kind of interface, such as a keyboard key like Enter, a combination of key presses like Ctrl + Alt + Del, or the interaction with an UI element like the Refresh button. -

-

- Key presses and releases can be distinguished via special classes: Press A Release A -

-
-
-

- Preformatted and code -

-

- A preformatted text element displays its content as it is, preserving all spaces, newlines, and indentation. -

-
-
This is regular preformatted text.   :)
-
-

- If code is being represented, it should be wrapped inside a code element. -

-
-
This is preformatted code text.   :)
-
-
-
-
-

- Colors -

-
-

- Bluelib color -

-

- All Bluelib elements get their Bluelib color dynamically from the --bluelib-color-* CSS variables, and then use it to paint themselves. -

-

- It is possible to change this color to alter the color of not only text, but panels and other elements as well! -

-
-
-
-

- Red -

-

- This is a red box. -

-
-
-

- Orange -

-

- This is an orange box. -

-
-
-

- Yellow -

-

- This is a yellow box. -

-
-
-

- Lime -

-

- This is a lime box. -

-
-
-

- Cyan -

-

- This is a cyan box. -

-
-
-

- Blue -

-

- This is a blue box. -

-
-
-

- Magenta -

-

- This is a magenta box. -

-
-
-

- Gray -

-

- This is a gray box. -

-
-
-
-

- White -

-

- This box has a custom color: it is always white! -

-
-
-

- Black -

-

- This box has a custom color: it is always black! -

-
-
-
-
-
- - - diff --git a/package.json b/package.json index 57bbd70..199a296 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,10 @@ { "name": "@steffo/bluelib", - "version": "4.0.2", + "version": "5.0.0", "description": "A stylesheet that supports fast dynamic recoloring via CSS variables", + "scripts": { + "dev": "web-dev-server --watch" + }, "keywords": [ "bluelib", "css", @@ -45,5 +48,8 @@ "url": "https://github.com/Steffo99/bluelib.git" }, "license": "AGPL-3.0-or-later", - "private": false + "private": false, + "devDependencies": { + "@web/dev-server": "^0.1.34" + } } diff --git a/src/hacks/intellij-shut-up.less b/src/hacks/intellij-shut-up.less new file mode 100644 index 0000000..ea231b9 --- /dev/null +++ b/src/hacks/intellij-shut-up.less @@ -0,0 +1,3 @@ +// IntelliJ does not support yet accessors, so this will make it stop reporting errors without affecting anything else. +@c: 0; + diff --git a/src/mixins/fonts.less b/src/mixins/fonts.less new file mode 100644 index 0000000..7ed7d84 --- /dev/null +++ b/src/mixins/fonts.less @@ -0,0 +1,29 @@ +//! These mixins allow the abstraction of the fonts used by elements by having them use named "mixins". +//! +//! For example, all h1, h2, h3, and .title elements might use the "title" group, whose font may be dynamically changed at the time of the page viewing. + + +/// Set the CSS variables of a certain font group to the given values. +/// +/// See `.use-font-group`. +.create-font-group(@name; @style; @variant; @weight; @stretch; @size; @height; @family) { + --bfont-@{name}-style: @style; + --bfont-@{name}-variant: @variant; + --bfont-@{name}-weight: @weight; + --bfont-@{name}-stretch: @stretch; + --bfont-@{name}-height: @height; + --bfont-@{name}-family: @family; +} + + +/// Set the `font` CSS property to the CSS variables of the given font name. +/// +/// See `.create-font-group`. +.use-font-group(@name) { + font-style: var(~"--bfont-@{name}-style"); + font-variant: var(~"--bfont-@{name}-variant"); + font-weight: var(~"--bfont-@{name}-weight"); + font-stretch: var(~"--bfont-@{name}-stretch"); + line-height: var(~"--bfont-@{name}-height"); + font-family: var(~"--bfont-@{name}-family"); +} diff --git a/src/mixins/hsl.less b/src/mixins/hsl.less new file mode 100644 index 0000000..8bf5824 --- /dev/null +++ b/src/mixins/hsl.less @@ -0,0 +1,51 @@ +//! These mixins allow the abstraction of the colors used by elements by having them use named "mixins". +//! +//! For example, the body's foreground color and the buttons' background color might use the "foreground" group, whose color may be dynamically changed at the time of the page viewing. +//! +//! Color mixins can only be defined via HSL due to the absence of color interpolation functions in the CSS Color Level 4 Specification. + + +/// Set the CSS variables of a certain color group to the given values. +.create-hsl-group(@name; @hue; @saturation; @lightness) { + --bhsl-@{name}-hue: @hue; + --bhsl-@{name}-saturation: @saturation; + --bhsl-@{name}-lightness: @lightness; +} + + +/// Set the CSS variables of a certain color group to the ones of another. +.map-hsl-group(@to; @from) { + --bhsl-@{to}-hue: var(~"--bhsl-@{from}-hue"); + --bhsl-@{to}-saturation: var(~"--bhsl-@{from}-saturation"); + --bhsl-@{to}-lightness: var(~"--bhsl-@{from}-lightness"); +} + + +/// Set a CSS property to the color obtained from the CSS variables of the given color group. +/// +/// The color may be altered via the @hue-changes, @saturation-changes and @lightness-changes parameters, which specify a string calculation to be appended to the CSS variables in a calc function. +/// +/// For example, acceptable parameters may be: "+ 10deg", "/ 2", "* 1000", "- var(--something)", and so on. +.hsl-group(@name) { + @c: hsl( + var(~"--bhsl-@{name}-hue") + var(~"--bhsl-@{name}-saturation") + var(~"--bhsl-@{name}-lightness") + ); +} +.hsl-group(@name; @alpha) { + @c: hsl( + var(~"--bhsl-@{name}-hue") + var(~"--bhsl-@{name}-saturation") + var(~"--bhsl-@{name}-lightness") + / @alpha + ); +} +.hsl-group(@name; @hue-changes; @saturation-changes; @lightness-changes; @alpha) { + @c: hsl( + calc(var(~"--bhsl-@{name}-hue") ~"@{hue-changes}") + calc(var(~"--bhsl-@{name}-saturation") ~"@{saturation-changes}") + calc(var(~"--bhsl-@{name}-lightness") ~"@{lightness-changes}") + / @alpha + ); +} diff --git a/src/rules/base.less b/src/rules/base.less new file mode 100644 index 0000000..45719c4 --- /dev/null +++ b/src/rules/base.less @@ -0,0 +1,891 @@ +/* + * Bluelib Base + * by + */ + +@{bluelib} { + + /// ===== Body ===== + /// The body element has some rules. + + // + + & { + // Set the current color + .map-hsl-group(current, foreground); + + // Set the background defined in the palette + background-color: .hsl-group(background)[@c]; + + // Make the element fill all available space + width: 100%; + height: 100%; + + // And remove its margin, in case it is the "real" body + margin: 0; + + // Set the default font family + .use-font-group(text) + } + + // + + /// ===== All ===== + /// By default, browsers style elements with some weird rules. + /// This is an attempt to correct them, and to implement some Bluelib magic. + + // + + &, @{all} { + // Globally set the box-sizing to border-box, as content-box is completely insane + &, &::before, &::after { + box-sizing: border-box; + } + + // Remove all default margins and paddings + margin: 0; + padding: 0; + + // Bluelib magic! + // This rule sets the color of all text to be equal to the current .bluelib-color() at 100% opacity. + // Thanks, CSS variables! + color: .hsl-group(current)[@c]; + border-color: .hsl-group(current)[@c]; + + // Set the default border properties for no unexpected behaviour from browser styles + border-width: 0; + border-style: solid; + + // Get the scrollbar color from the theme + scrollbar-color: .hsl-group(current)[@c] .hsl-group(background)[@c]; + + // TODO: I HATE HOW BROWSERS HANDLE THIS + &:focus-visible { + outline-width: 4px; + outline-style: solid; + outline-color: .hsl-group(current; 0.3)[@c]; + } + } + + // + + /// ===== Page ===== + /// These rules apply to the four page areas: main, aside, header and footer + + // + + @{page-footer} { + margin: 1rem 0; + text-align: center; + font-size: x-small; + } + + // + + /// ===== Floats ===== + /// Floats allow for elements to be automatically positioned in a different position than normal. + + // + + @{float-top} { + margin-bottom: auto; + } + @{float-right} { + margin-left: auto; + } + @{float-bottom} { + margin-top: auto; + } + @{float-left} { + margin-right: auto; + } + @{float-hcenter} { + margin-left: auto; + margin-right: auto; + } + @{float-vcenter} { + margin-top: auto; + margin-bottom: auto; + } + + // + + /// ===== Headers ===== + /// Headers are the titles of the page. + + // + + @{header-1} { + // Make h1 larger than h2 + // Why is it not so by default?! + font-size: 2.5em; + } + + @{header-2} { + // Make h2 a bit larger as well + font-size: 1.75em; + } + + @{header-1}, @{header-2}, @{header-3}, @{header-4}, @{header-5}, @{header-6} { + text-align: center; + + .map-hsl-group(current; primary); + + .use-font-group(header); + } + + // + + /// ===== Panels ===== + /// Panels are the main sectioning elements available in Bluelib. + /// Many instances of them should be present on the page! + /// They should group small amounts of tightly related content, which can be understood more or less separately from the rest of the page. + + // + + // The base panel class. + @{panel} { + // And a padding to separate them from their contents + padding-top: 0.5em; + padding-right: 0.5em; + padding-left: 0.5em; + padding-bottom: 0.5em; + // Remove the border, just to be sure + border-width: 0; + border-style: solid; + + // Panels should try to fill the most space possible + width: 100%; + + // Have panels be column-flex objects to facilitate alignments + display: flex; + flex-direction: column; + gap: 8px; + + // Give the first panel in a stack a fixed background color, so it may be seen against a background + background-color: .hsl-group(background)[@c]; + + // Make borders togglable + &@{border-top}, &@{panel-box} { + border-top-width: 2px; + padding-top: calc(0.5em - 2px); + } + &@{border-right}, &@{panel-box} { + border-right-width: 2px; + padding-right: calc(0.5em - 2px); + } + &@{border-left}, &@{panel-box}, &@{panel-dialog} { + border-left-width: 2px; + padding-left: calc(0.5em - 2px); + } + &@{border-bottom}, &@{panel-box} { + border-bottom-width: 2px; + padding-bottom: calc(0.5em - 2px); + } + + // For compatibility, make panel-parenthesis available + &@{panel-parenthesis} { + font-size: smaller; + } + } + + // + + + /// ===== Chapters ===== + /// A chapter is a decorative element separating its children in a certain number of columns. + + // + + @{chapter-0}, @{chapter-1}, @{chapter-2}, @{chapter-3}, @{chapter-4}, @{chapter-5}, @{chapter-6}, @{chapter-7}, @{chapter-8}, @{chapter-9} { + // Be a row flexbox to separate elements in columns + display: flex; + flex-wrap: wrap; + flex-direction: row; + gap: 0.5em; + justify-content: stretch; + align-items: stretch; + + // Add the gap as a vertical margin, so that multiple chapters can be placed next to each other + margin: 0.5em; + + > @{all} { + // Allow all children to grow + flex-grow: 1; + // But not to shrink + flex-shrink: 0; + } + + > @{header-1}, > @{header-2}, > @{header-3}, > @{header-4}, > @{header-5}, > @{header-6} { + // Headings should fill up all horizontal space available and force a wrap + flex-basis: 100%; + + margin-top: 1.2em; + } + } + + // Chapter zero means that the number of panels is not set and they should not be wrapped + @{chapter-0} { + flex-wrap: nowrap; + + > @{all} { + // Elements inside may be forced to shrink + flex-shrink: 1; + } + } + + // Set the basis of elements of the various chapter sizes + @{chapter-1} { + > @{all} { + flex-basis: calc(100% / 2); + } + } + @{chapter-2} { + > @{all} { + flex-basis: calc(100% / 3); + } + } + @{chapter-3} { + > @{all} { + flex-basis: calc(100% / 4); + } + } + @{chapter-4} { + > @{all} { + flex-basis: calc(100% / 5); + } + } + @{chapter-5} { + > @{all} { + flex-basis: calc(100% / 6); + } + } + @{chapter-6} { + > @{all} { + flex-basis: calc(100% / 7); + } + } + @{chapter-7} { + > @{all} { + flex-basis: calc(100% / 8); + } + } + @{chapter-8} { + > @{all} { + flex-basis: calc(100% / 9); + } + } + @{chapter-9} { + > @{all} { + flex-basis: calc(100% / 10); + } + } + + // + + /// ===== Separators ===== + /// Separators are horizontal lines separating elements. + + // + + @{separator} { + border-width: 1px; + border-style: dashed; + } + + @{separator-light} { + border-style: dotted; + } + + @{separator-heavy} { + border-style: solid; + } + + // + + /// ===== Images ===== + /// Images are changed to block elements and automatically resized to fit their container. + + // + + @{image} { + // Change images to block + display: block; + + // Limit their width + max-width: 100%; + // Resize the contained image to fully fit the element + object-fit: contain; + } + + @{image-limit-half} { + // Limit the image size to half of the vertical viewport + max-height: max(28.2vw, 50vh); + } + + @{image-limit-quarter} { + // Limit the image size to a quarter of the vertical viewport + max-height: max(14.1vw, 25vh); + } + + // + + /// ===== Tables ===== + /// Tables are elements whose children are aligned in a grid. + + // + + @{table} { + // Prevent ugly stacking borders + border-collapse: collapse; + + @{table-head}, @{table-data} { + // Leave a little breathing room between table elements, even if not as much as with a table panel + padding: 3px 7px; + border-width: 1px; + } + + @{table-caption} { + // Make captions have the same border as the cells + border-width: 1px; + + // Assign captions to their own font group + .use-font-group(caption); + + &@{table-caption-top} { + // Place captions on the correct side of the table + caption-side: top; + // Remove the bottom border as it cannot collapse + border-bottom-width: 0; + } + + &@{table-caption-bottom} { + // Place captions on the correct side of the table + caption-side: bottom; + // Remove the top border as it cannot collapse + border-top-width: 0; + } + } + + /// ----- Panels ----- + /// Tables can be integrated with panels! + + &@{panel} { + // Override the flex display of panels + display: table; + + @{table-head}, @{table-data} { + // Have more space between cells + padding: 8px; + } + + @{table-caption} { + // Behave as a regular panel and have text where it usually is + text-align: inherit; + + // Add a background color to top-level table panel captions as if they were panels themselves + background-color: .hsl-group(background)[@c]; + + // Use the same padding as cells + padding: 8px; + + // Since captions can't be made flex, go back to the old style of defining margins + @{all} { + margin-top: 8px; + margin-bottom: 8px; + + &:first-child { + margin-top: 0; + } + + &:last-child { + margin-bottom: 0; + } + } + } + } + + &@{panel-box} { + @{table-row} { + border-width: 1px; + } + + @{table-head}, @{table-data} { + border-width: 1px; + padding: 7px; + } + + @{table-caption} { + border-width: 2px; + padding: 6px; + + &@{table-caption-top} { + // Remove the bottom border again because specificity + border-bottom-width: 0; + } + + &@{table-caption-bottom} { + // Remove the top border again because specificity + border-top-width: 0; + } + } + } + + &@{panel-dialog} { + @{table-header} > @{table-row} { + border-bottom-width: 1px; + } + + @{table-body} > @{table-row} { + border-width: 0; + } + + @{table-footer} > @{table-row} { + border-top-width: 1px; + } + + @{table-head}, @{table-data} { + border-width: 0 0 0 1px; + padding: 8px 8px 8px 7px; + } + + @{table-caption} { + border-width: 0 0 0 2px; + padding: 8px 8px 8px 6px; + } + } + } + + // + + /// ===== Lists ===== + /// Lists are marked series of children elements + + // + + @{panel} { + > @{list-unordered}, > @{list-ordered} { + margin-left: 6ex; + } + } + + // + + /// ===== Glossaries ===== + /// Glossaries are key-value pairs of items + + // + + @{glossary-term} { + margin-top: 0.5em; + padding: 0.2em 0; + + .map-hsl-group(current; primary); + + .use-font-group(term); + } + + @{glossary-description} { + margin-left: 4.5ex; + margin-bottom: 0.5em; + } + + @{glossary-details} { + margin-left: 4.5ex; + } + + @{glossary-summary} { + cursor: pointer; + + margin-left: -4ex; + padding: 0.2em 0; + + .use-font-group(summary); + + // Prevent the user from accidentaly selecting the summary + user-select: none; + } + + // + + /// ===== Modifiers ===== + + // + + @{modifier-fade} { + opacity: 0.3; + } + + @{modifier-mark}, @{element-mark} { + // Assign marks to their own font group + .use-font-group(mark); + + // Use the set color as background for marking + background-color: .hsl-group(mark-background)[@c]; + .map-hsl-group(current; mark-foreground); + + // If applied twice, go back to "normality" + @{modifier-mark}, @{element-mark} { + background-color: .hsl-group(background)[@c]; + .map-hsl-group(current; foreground); + + // If applied thrice, mark again and not anymore + @{modifier-mark}, @{element-mark} { + background-color: .hsl-group(mark-background)[@c]; + .map-hsl-group(current; mark-foreground); + } + } + } + + @{modifier-todo} { + .map-hsl-group(current; todo-foreground); + + // Ensure it overrides properly the background color of panels + &, @{panel} { + border-style: dashed; + background-color: .hsl-group(todo-background)[@c]; + } + } + + @{modifier-red} { + .map-hsl-group(current; red); + } + @{modifier-yellow} { + .map-hsl-group(current; yellow); + } + @{modifier-green} { + .map-hsl-group(current; green); + } + @{modifier-cyan} { + .map-hsl-group(current; cyan); + } + @{modifier-blue} { + .map-hsl-group(current; blue); + } + @{modifier-magenta} { + .map-hsl-group(current; magenta); + } + + // + + /// ===== Inputs ===== + + // + + @{input} { + // Disable the browser font override + font: inherit; + + // Make the element feel clickable + cursor: pointer; + + // Uniform the various properties of the elements + background-color: transparent; + + // Add some padding to avoid visual overload + padding: 0.125em 0.75ex; + + // Align all inputs to the middle + vertical-align: middle; + + + // By default, no borders should be present + border-width: 0; + + border-color: .hsl-group(current; 0.4)[@c]; + + &::placeholder { + opacity: 1; + color: .hsl-group(current; 0.4)[@c]; + } + + &:hover { + border-color: .hsl-group(current; 0.7)[@c]; + + &::placeholder { + color: .hsl-group(current; 0.7)[@c]; + } + } + + &:active, &:focus { + border-color: .hsl-group(current)[@c]; + } + } + + // Prevent the wild resizing of areas + @{input-area} { + resize: vertical; + } + + @{input-field}, @{input-select} { + // Fields and selects should have a bottom border + border-bottom-width: 2px; + } + @{input-area}, @{input-multiselect} { + // Areas and multiselects should have a left border + border-left-width: 2px; + } + + // Mark interactivity by changing the mouse cursor + @{input-field}, @{input-area} { + cursor: text; + } + @{input-select}, @{input-multiselect} { + cursor: vertical-text; + } + @{input-range} { + cursor: ew-resize; + } + + // Configure option display + @{input-select}, @{input-multiselect} { + & optgroup { + // Clearly display the grouping of options + padding-bottom: 0.25em; + + // Use the header font + .use-font-group(header); + + & option { + // Indent and pad + padding: 0.125em 0 0.125em 2ex; + } + } + + & option { + // Use the regular font + .use-font-group(text) + } + } + + // Override the default browser appearence for radios and checkboxes + @{input-radio}, @{input-checkbox} { + appearance: none; + + // Make the element feel clickable + cursor: pointer; + + // Set a fixed size + width: 1em; + height: 1em; + + // Remove the padding + padding: 2px; + + // Override the default border width + border-width: 2px; + + // Prepare the element to display something inside + display: inline-flex; + justify-content: center; + align-items: center; + + &::before { + // Force the creation of a pseudo-element inside + display: block; + content: ""; + + width: 100%; + height: 100%; + } + + // If the element is checked, display it + &:checked::before { + background-color: .hsl-group(current)[@c]; + } + } + @{input-radio} { + // Radios should be round + border-radius: 100%; + + &::before { + border-radius: 100%; + } + } + + @{input-range} { + padding: 0; + + /* + appearance: none; + + &::-moz-range-thumb { + width: 0; + border-radius: 0; + border-style: outset; + + border-color: .hsl-group(current)[@c]; + border-width: 4px; + + background-color: .hsl-group(primary)[@c]; + } + + &::-moz-range-track { + height: 0.125em; + background-color: .hsl-group(current)[@c]; + } + + &::-moz-range-progress { + height: 0.5em; + background-color: .hsl-group(current)[@c]; + } + */ + } + + @{input-button} { + border-width: 2px; + + // Borders should reflect the interactible feeling of the element + border-style: outset; + + &:active { + border-style: inset; + } + } + + // Unmanaged inputs + @{input-file}, @{input-color} { + padding: 0; + } + + // Webkit hacks + @media screen and (-webkit-min-device-pixel-ratio:0) { + // Make the icons that webkit randomly add to fields AT LEAST use the correct color + @{input-field} { + &::-webkit-calendar-picker-indicator { + // smh why doesn't it support fill + filter: invert(calc(calc(var(--bhsl-current-lightness) - 50%) * 1000)) + } + } + + // Draw a background color on the option dropdown menu + @{input-select} optgroup, @{input-select} option { + background-color: .hsl-group(background)[@c]; + + &::before { + // Remove the tabs that Chrome adds before the options + content: ""; + } + } + } + + // + + /// ===== Forms ===== + + // + + @{form-flex} { + display: flex; + flex-direction: column; + + justify-content: stretch; + + > @{element-paragraph} { + margin: 0.5em 0; + } + + > @{element-label} { + display: flex; + gap: 1ex; + + > @{element-span}:first-child, > @{element-span}:last-child { + margin: auto 0; + flex-basis: 15%; + + .use-font-group(label); + .map-hsl-group(current; primary); + } + + > @{element-span}:first-child { + text-align: right; + } + + > @{element-span}:last-child { + text-align: left; + } + + > @{input} { + flex-grow: 1; + } + } + } + + // + + /// ===== Text ===== + + // + + @{text-anchor} { + .map-hsl-group(current; link); + } + + @{text-idiomatic} { + .use-font-group(idiomatic); + } + @{text-emphasis} { + .use-font-group(emphasis); + } + + @{text-attention} { + .use-font-group(attention); + } + @{text-strong} { + .use-font-group(strong); + } + + @{text-inserted} { + .map-hsl-group(current; inserted); + } + @{text-deleted} { + .map-hsl-group(current; deleted); + } + + @{text-code}, @{text-preformatted}, @{text-input}, @{text-output} { + .use-font-group(code); + } + @{text-preformatted} { + overflow-x: scroll; + } + @{text-input}, @{text-output} { + padding: 0 0.25ex; + } + @{text-input} { + background-color: .hsl-group(sample-output)[@c]; + .map-hsl-group(current; sample-input); + + @{text-input} { + .use-font-group(boldcode); + } + } + @{text-output} { + background-color: .hsl-group(sample-input)[@c]; + .map-hsl-group(current; sample-output); + + @{text-output} { + .use-font-group(boldcode); + } + } + + @{text-variable} { + .use-font-group(variable); + } + + @{text-citation} { + .use-font-group(citation); + } + + @{text-definition} { + .use-font-group(term); + .map-hsl-group(current; primary); + } + + @{text-abbreviation} { + cursor: help; + } + + // + + +} \ No newline at end of file diff --git a/src/rules/classic.less b/src/rules/classic.less new file mode 100644 index 0000000..2e7f558 --- /dev/null +++ b/src/rules/classic.less @@ -0,0 +1,165 @@ +/* + * Bluelib Classic + * by + */ + +@{bluelib} { + + & { + // Sets the border radius of all panels + --b-border-radius: 8px; + } + + &, @{all} { + // Lower the default border opacity + border-color: .hsl-group(current; 0.15)[@c]; + } + + // Give headers a slight shadow so they are easier to read outside of panels + @{header-1}, @{header-2}, @{header-3}, @{header-4}, @{header-5}, @{header-6} { + text-shadow: 2px 2px 4px .hsl-group(background)[@c]; + } + + // But do not give it to headers inside panels + @{panel} { + @{header-1}, @{header-2}, @{header-3}, @{header-4}, @{header-5}, @{header-6} { + text-shadow: none; + } + } + + @{panel}, @{table}@{panel} > @{table-caption} { + border-radius: var(--b-border-radius); + + // And a shadow effect + box-shadow: 2px 2px 4px .hsl-group(background)[@c]; + + // Do not give the same effects to nested panels + @{panel} { + background-color: .hsl-group(foreground; 0.075)[@c]; + backdrop-filter: none; + box-shadow: none; + } + } + + // Make sure mark still works, even considering specificity + @{modifier-mark}, @{element-mark}, @{panel}@{modifier-mark} { + background-color: .hsl-group(mark-background)[@c]; + + // Make the modifier toggle properly + @{modifier-mark}, @{element-mark}, @{panel}@{modifier-mark} { + background-color: .hsl-group(background)[@c]; + + // Make the modifier toggle properly + @{modifier-mark}, @{element-mark}, @{panel}@{modifier-mark} { + background-color: .hsl-group(mark-background)[@c]; + } + } + } + + // Make sure to-do still works, even considering specificity + @{modifier-todo}, @{panel}@{modifier-todo} { + background-color: .hsl-group(todo-background)[@c]; + border-color: .hsl-group(current)[@c]; + + // Make the modifier inherit properly + @{panel} { + background-color: .hsl-group(todo-background)[@c]; + border-color: .hsl-group(current)[@c]; + } + } + + // Fixup table panels + @{table}@{panel} { + // Ensure table panels have no rounded borders + border-radius: 0; + + > @{table-caption} { + // And ensure neither do table panel captions + border-radius: 0; + + // Minimize the visibility of the caption's box shadow to prevent overlap with the table itself + box-shadow: 0.0625em 0 0.25em .hsl-group(background)[@c]; + } + } + + @{table}@{panel-dialog} > @{table-caption} { + border-bottom-width: 2px; + } + + @{input} { + background-color: .hsl-group(current; 0.025)[@c]; + + &:hover { + background-color: .hsl-group(current; 0.05)[@c]; + } + + &:active { + background-color: .hsl-group(current; 0.075)[@c]; + } + } + + @{input-field}, @{input-select} { + border-radius: var(--b-border-radius) var(--b-border-radius) 0 0; + } + @{input-area}, @{input-multiselect} { + border-radius: 0 var(--b-border-radius) var(--b-border-radius) 0; + } + @{input-button} { + border-radius: var(--b-border-radius); + } + + @{list-unordered}, @{list-ordered} { + > *::marker { + color: .hsl-group(current; 0.5)[@c]; + } + } + + @{glossary-summary} { + color: .hsl-group(current; 0.7)[@c]; + + &::marker { + color: .hsl-group(current; 0.5)[@c]; + } + + &:hover { + color: .hsl-group(current)[@c]; + } + + &:hover::marker { + color: .hsl-group(current; 0.7)[@c]; + } + + &:active::marker { + color: .hsl-group(current)[@c]; + } + } + + // FIXME: may not work well for lighter themes + @{text-anchor} { + &:hover { + color: .hsl-group(link; "+ 0deg"; "+ 0%"; "+ 20%"; 1.0)[@c]; + } + + &:active { + color: .hsl-group(link; "+ 0deg"; "+ 0%"; "+ 40%"; 1.0)[@c]; + } + } + + @{text-input}, @{text-output} { + border-radius: calc(var(--b-border-radius) / 4); + } + + @{text-variable} { + color: .hsl-group(current; 0.7)[@c]; + } + + @{text-quote} { + &::before, &::after { + color: .hsl-group(current; 0.7)[@c]; + } + } + + @{text-ruby-annotation} { + color: .hsl-group(current; 0.7)[@c]; + } +} \ No newline at end of file diff --git a/src/rules/colors/colors-royalblue.less b/src/rules/colors/colors-royalblue.less new file mode 100644 index 0000000..142cab2 --- /dev/null +++ b/src/rules/colors/colors-royalblue.less @@ -0,0 +1,30 @@ +/* + * Bluelib Royal Blue Colors + * by + */ + +@{bluelib} { + .create-hsl-group(background; 224deg; 64%; 14%); + .create-hsl-group(foreground; 212deg; 100%; 81%); + .create-hsl-group(primary; 0deg; 0%; 100%); + .create-hsl-group(link; 180deg; 100%; 40%); + + .create-hsl-group(mark-foreground; 32deg; 64%; 14%); + .create-hsl-group(mark-background; 32deg; 100%; 81%); + + .create-hsl-group(todo-foreground; 43deg; 100%; 65%); + .create-hsl-group(todo-background; 204deg; 11%; 18%); + + .create-hsl-group(sample-input; 0deg; 100%; 0%); + .create-hsl-group(sample-output; 0deg; 100%; 100%); + + .create-hsl-group(red; 0deg; 100%; 75%); + .create-hsl-group(yellow; 60deg; 100%; 75%); + .create-hsl-group(green; 120deg; 100%; 75%); + .create-hsl-group(cyan; 180deg; 100%; 75%); + .create-hsl-group(blue; 240deg; 100%; 75%); + .create-hsl-group(magenta; 300deg; 100%; 75%); + + .map-hsl-group(inserted; green); + .map-hsl-group(deleted; red); +} diff --git a/src/rules/fonts/fonts-fira-ghpages.less b/src/rules/fonts/fonts-fira-ghpages.less new file mode 100644 index 0000000..57802f1 --- /dev/null +++ b/src/rules/fonts/fonts-fira-ghpages.less @@ -0,0 +1,247 @@ +/* + * Bluelib Fira Sans Font from GitHub Pages + * by + */ + +/// This file imports Fira from github.com/mozilla/Fira . +/// It may break if the repository's structure is changed, do not use it if possible. + + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Hair.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Hair.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Hair.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Hair.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Hair.ttf') format('truetype'); + font-weight: 100; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-HairItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-HairItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-HairItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-HairItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-HairItalic.ttf') format('truetype'); + font-weight: 100; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-UltraLight.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-UltraLight.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-UltraLight.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-UltraLight.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-UltraLight.ttf') format('truetype'); + font-weight: 200; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-UltraLightItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-UltraLightItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-UltraLightItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-UltraLightItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-UltraLightItalic.ttf') format('truetype'); + font-weight: 200; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Light.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Light.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Light.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Light.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Light.ttf') format('truetype'); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-LightItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-LightItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-LightItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-LightItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-LightItalic.ttf') format('truetype'); + font-weight: 300; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Regular.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Regular.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Regular.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Regular.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Regular.ttf') format('truetype'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Italic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Italic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Italic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Italic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Italic.ttf') format('truetype'); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Medium.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Medium.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Medium.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Medium.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Medium.ttf') format('truetype'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-MediumItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-MediumItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-MediumItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-MediumItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-MediumItalic.ttf') format('truetype'); + font-weight: 500; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-SemiBold.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-SemiBold.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-SemiBold.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-SemiBold.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-SemiBold.ttf') format('truetype'); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-SemiBoldItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-SemiBoldItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-SemiBoldItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-SemiBoldItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-SemiBoldItalic.ttf') format('truetype'); + font-weight: 600; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Bold.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Bold.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Bold.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Bold.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Bold.ttf') format('truetype'); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-BoldItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-BoldItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-BoldItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-BoldItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-BoldItalic.ttf') format('truetype'); + font-weight: 700; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-ExtraBold.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-ExtraBold.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-ExtraBold.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-ExtraBold.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-ExtraBold.ttf') format('truetype'); + font-weight: 800; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-ExtraBoldItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-ExtraBoldItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-ExtraBoldItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-ExtraBoldItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-ExtraBoldItalic.ttf') format('truetype'); + font-weight: 800; + font-style: italic; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Heavy.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-Heavy.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-Heavy.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-Heavy.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-Heavy.ttf') format('truetype'); + font-weight: 900; + font-style: normal; +} + +@font-face { + font-family: 'Fira Sans'; + src: url('https://mozilla.github.io/Fira/eot/FiraSans-HeavyItalic.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraSans-HeavyItalic.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraSans-HeavyItalic.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraSans-HeavyItalic.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraSans-HeavyItalic.ttf') format('truetype'); + font-weight: 900; + font-style: italic; +} + + +@font-face { + font-family: 'Fira Mono'; + src: url('https://mozilla.github.io/Fira/eot/FiraMono-Regular.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraMono-Regular.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraMono-Regular.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraMono-Regular.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraMono-Regular.ttf') format('truetype'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Fira Mono'; + src: url('https://mozilla.github.io/Fira/eot/FiraMono-Bold.eot'); + src: url('https://mozilla.github.io/Fira/eot/FiraMono-Bold.eot') format('embedded-opentype'), + url('https://mozilla.github.io/Fira/woff2/FiraMono-Bold.woff2') format('woff2'), + url('https://mozilla.github.io/Fira/woff/FiraMono-Bold.woff') format('woff'), + url('https://mozilla.github.io/Fira/ttf/FiraMono-Bold.ttf') format('truetype'); + font-weight: 600; + font-style: normal; +} + + +@{bluelib} { + // @name; @style; @variant; @weight;@stretch; @size; @height; @family + .create-font-group( text; normal; normal; 400; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( header; normal; normal; 600; normal; regular; 1.7; "Fira Sans", sans-serif); + .create-font-group( code; normal; normal; 400; normal; regular; 1.3; "Fira Mono", monospace); + .create-font-group( boldcode; normal; normal; 600; normal; regular; 1.3; "Fira Mono", monospace); + .create-font-group( term; italic; normal; 500; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( summary; italic; normal; 400; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group(idiomatic; italic; normal; 400; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( emphasis; italic; normal; 500; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group(attention; normal; normal; 600; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( strong; normal; normal; 900; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( variable; normal; normal; 300; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( citation; normal; small-caps; 400; normal; regular; 1.3; "Fira Sans", sans-serif); + .create-font-group( label; normal; normal; 500; normal; regular; 1.3; "Fira Sans", sans-serif); +} diff --git a/src/rules/fun.less b/src/rules/fun.less new file mode 100644 index 0000000..e60c8ec --- /dev/null +++ b/src/rules/fun.less @@ -0,0 +1,25 @@ +/* + * Bluelib Fun Experiments + * by + */ + +//noinspection CssInvalidAtRule +@property --bhsl-current-hue { + syntax: ''; + initial-value: 0deg; + inherits: true; +} + +@keyframes rainbow { + 0% { + --bhsl-current-hue: 0deg; + } + + 100% { + --bhsl-current-hue: 360deg; + } +} + +@{animation-rainbow} { + animation: 2s linear infinite rainbow; +} \ No newline at end of file diff --git a/src/rules/glass.less b/src/rules/glass.less new file mode 100644 index 0000000..dd5ee63 --- /dev/null +++ b/src/rules/glass.less @@ -0,0 +1,65 @@ +/* + * Bluelib Glass + * by + */ + +@{bluelib} { + & { + // Sets the backdrop-filter blur radius of all panels + --b-panel-blur: 16px; + } + + @{panel}, @{table}@{panel} > @{table-caption} { + background-color: .hsl-group(background; 0.3)[@c]; + backdrop-filter: + blur(var(--b-panel-blur)) + hue-rotate(calc(var(--bhsl-current-hue) - var(--bhsl-foreground-hue))) + ; + + @{panel} { + background-color: .hsl-group(current; 0.075)[@c]; + backdrop-filter: none; + } + } + + // Make sure mark still works, even considering specificity + @{modifier-mark}, @{element-mark}, @{panel}@{modifier-mark} { + background-color: .hsl-group(mark-background)[@c]; + backdrop-filter: none; + + // Make the modifier toggle properly + @{modifier-mark}, @{element-mark}, @{panel}@{modifier-mark} { + background-color: .hsl-group(background)[@c]; + + // Make the modifier toggle properly + @{modifier-mark}, @{element-mark}, @{panel}@{modifier-mark} { + background-color: .hsl-group(mark-background)[@c]; + } + } + } + + // Make sure to-do still works, even considering specificity + @{modifier-todo}, @{panel}@{modifier-todo} { + background-color: .hsl-group(todo-background)[@c]; + + // Make the modifier inherit properly + @{panel} { + background-color: .hsl-group(todo-background)[@c]; + backdrop-filter: none; + } + } + + // Make to-do have a glass background too + @{panel}@{modifier-todo} { + background-color: .hsl-group(todo-background; 0.3)[@c]; + backdrop-filter: + blur(var(--b-panel-blur)) + grayscale(100%) + ; + } + @{panel} { + @{panel}@{modifier-todo} { + background-color: .hsl-group(todo-background)[@c]; + } + } +} diff --git a/src/selectors/module.less b/src/selectors/module.less new file mode 100644 index 0000000..bdd3d57 --- /dev/null +++ b/src/selectors/module.less @@ -0,0 +1,82 @@ +@bluelib: ~".bluelib"; + +@all: ~"*"; + +@page-main: ~".page-main"; +@page-aside: ~".page-aside"; +@page-header: ~".page-header"; +@page-footer: ~".page-footer"; + +@border-top: ~".border-top"; +@border-right: ~".border-right"; +@border-bottom: ~".border-bottom"; +@border-left: ~".border-left"; + +@float-top: ~".float-top"; +@float-right: ~".float-right"; +@float-bottom: ~".float-bottom"; +@float-left: ~".float-left"; +@float-hcenter: ~".float-hcenter"; +@float-vcenter: ~".float-vcenter"; + +@header-1: ~"h1"; +@header-2: ~"h2"; +@header-3: ~"h3"; +@header-4: ~"h4"; +@header-5: ~"h5"; +@header-6: ~"h6"; + +@panel: ~".panel"; +@panel-box: ~".panel-box"; +@panel-dialog: ~".panel-dialog"; +@panel-parenthesis: ~".panel-parenthesis"; + +@chapter-0: ~".chapter-0"; +@chapter-1: ~".chapter-1"; +@chapter-2: ~".chapter-2"; +@chapter-3: ~".chapter-3"; +@chapter-4: ~".chapter-4"; +@chapter-5: ~".chapter-5"; +@chapter-6: ~".chapter-6"; +@chapter-7: ~".chapter-7"; +@chapter-8: ~".chapter-8"; +@chapter-9: ~".chapter-9"; + +@separator: ~".separator"; +@separator-light: ~".separator-light"; +@separator-heavy: ~".separator-heavy"; + +@image: ~".image"; +@image-limit-half: ~".image-limit-half"; +@image-limit-quarter: ~".image-limit-quarter"; +@figure: ~".figure"; +@figure-caption: ~".figure-caption"; + +@table: ~".table"; +@table-caption: ~".table-caption"; +@table-caption-top: ~".table-caption-top"; +@table-caption-bottom: ~".table-caption-bottom"; +@table-header: ~".table-header"; +@table-body: ~".table-body"; +@table-footer: ~".table-footer"; +@table-row: ~".table-row"; +@table-head: ~".table-head"; +@table-data: ~".table-data"; + +@list-unordered: ~".list-unordered"; +@list-ordered: ~".list-ordered"; + +@glossary: ~".glossary"; +@glossary-term: ~".glossary-term"; +@glossary-description: ~".glossary-description"; + +@modifier-fade: ~".modifier-fade"; +@modifier-mark: ~".modifier-mark"; +@element-mark: ~".element-mark"; +@modifier-todo: ~".modifier-todo"; +@modifier-red: ~".modifier-red"; +@modifier-yellow: ~".modifier-yellow"; +@modifier-green: ~".modifier-green"; +@modifier-cyan: ~".modifier-cyan"; +@modifier-blue: ~".modifier-blue"; +@modifier-magenta: ~".modifier-magenta"; diff --git a/src/selectors/root.less b/src/selectors/root.less new file mode 100644 index 0000000..a1d2cea --- /dev/null +++ b/src/selectors/root.less @@ -0,0 +1,125 @@ +@bluelib: ~"body"; + +@all: ~"*"; + +@page-main: ~"main"; +@page-aside: ~"aside"; +@page-header: ~"header"; +@page-footer: ~"footer"; + +@border-top: ~".border-top"; +@border-right: ~".border-right"; +@border-bottom: ~".border-bottom"; +@border-left: ~".border-left"; + +@float-top: ~".float-top"; +@float-right: ~".float-right"; +@float-bottom: ~".float-bottom"; +@float-left: ~".float-left"; +@float-hcenter: ~".float-hcenter"; +@float-vcenter: ~".float-vcenter"; + +@header-1: ~"h1"; +@header-2: ~"h2"; +@header-3: ~"h3"; +@header-4: ~"h4"; +@header-5: ~"h5"; +@header-6: ~"h6"; + +@panel: ~".panel"; +@panel-box: ~".panel-box"; +@panel-dialog: ~".panel-dialog"; +@panel-parenthesis: ~".panel-parenthesis"; + +@chapter-0: ~".chapter-0"; +@chapter-1: ~".chapter-1"; +@chapter-2: ~".chapter-2"; +@chapter-3: ~".chapter-3"; +@chapter-4: ~".chapter-4"; +@chapter-5: ~".chapter-5"; +@chapter-6: ~".chapter-6"; +@chapter-7: ~".chapter-7"; +@chapter-8: ~".chapter-8"; +@chapter-9: ~".chapter-9"; + +@separator: ~"hr"; +@separator-light: ~".separator-light"; +@separator-heavy: ~".separator-heavy"; + +@image: ~"img"; +@image-limit-half: ~".image-limit-half"; +@image-limit-quarter: ~".image-limit-quarter"; +@figure: ~"figure"; +@figure-caption: ~"figcaption"; + +@table: ~"table"; +@table-caption: ~"caption"; +@table-caption-top: ~".table-caption-top"; +@table-caption-bottom: ~".table-caption-bottom"; +@table-header: ~"thead"; +@table-body: ~"tbody"; +@table-footer: ~"tfoot"; +@table-row: ~"tr"; +@table-head: ~"th"; +@table-data: ~"td"; + +@list-unordered: ~"ul"; +@list-ordered: ~"ol"; + +@glossary-term: ~"dt"; +@glossary-description: ~"dd"; +@glossary-details: ~"details"; +@glossary-summary: ~"summary"; + +@modifier-fade: ~".fade"; +@modifier-mark: ~".mark"; +@element-mark: ~"mark"; +@modifier-todo: ~".todo"; +@modifier-red: ~".red"; +@modifier-yellow: ~".yellow"; +@modifier-green: ~".green"; +@modifier-cyan: ~".cyan"; +@modifier-blue: ~".blue"; +@modifier-magenta: ~".magenta"; + +@input: ~"input, textarea, select, button"; +@input-field: ~'input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="datetime-local"], input[type="date"], input[type="time"]'; +@input-area: ~"textarea"; +@input-select: ~"select:not([multiple])"; +@input-multiselect: ~"select[multiple]"; +@input-radio: ~'input[type="radio"]'; +@input-checkbox: ~'input[type="checkbox"]'; +@input-color: ~'input[type="color"]'; +@input-file: ~'input[type="file"]'; +@input-range: ~'input[type="range"]'; +@input-button: ~'input[type="button"], button'; + +@form-flex: ~'.form-flex'; +@element-label: ~'label'; +@element-span: ~'span'; +@element-paragraph: ~'p'; + +@animation-rainbow: ~".rainbow"; + +@text-anchor: ~"a"; +@text-idiomatic: ~"i"; +@text-emphasis: ~"em"; +@text-attention: ~"b"; +@text-strong: ~"strong"; +@text-annotation: ~"u"; +@text-strike: ~"s"; +@text-inserted: ~"ins"; +@text-deleted: ~"del"; +@text-preformatted: ~"pre"; +@text-code: ~"code"; +@text-input: ~"kbd"; +@text-input-pressed: ~".press"; +@text-input-released: ~".release"; +@text-output: ~"samp"; +@text-variable: ~"var"; +@text-quote: ~"q"; +@text-citation: ~"cite"; +@text-definition: ~"dfn"; +@text-abbreviation: ~"abbr"; +@text-ruby: ~"ruby"; +@text-ruby-annotation: ~"rt"; diff --git a/src/targets/apache.less b/src/targets/apache.less deleted file mode 100644 index 6dddf06..0000000 --- a/src/targets/apache.less +++ /dev/null @@ -1,126 +0,0 @@ -@bluelib: ~"body, .bluelib"; -@all: ~"*"; - -@page-footer: ~"footer, .page-footer"; - -@layout: ~".layout"; -@layout-fill: ~".layout-fill"; -@layout-fill-single: ~".layout-fill-single"; -@layout-threecol: ~".layout-threecol"; -@layout-threecol-left: ~".layout-threecol-left"; -@layout-threecol-center: ~".layout-threecol-center"; -@layout-threecol-right: ~".layout-threecol-right"; - -@panel: ~".panel"; -@panel-box: ~".panel-box"; -@panel-dialog: ~".panel-dialog"; -@panel-parenthesis: ~".panel-parenthesis"; -@panel-table: ".panel-table"; - -@chapter: ~".chapter"; -@chapter-forcewrap: ~".chapter-forcewrap"; - -@separator: ~"hr, .separator"; -@separator-light: ~".separator-light"; -@separator-heavy: ~".separator-heavy"; - -@image: ~"img, .image"; -@image-limit-half: ~".image-limit-half"; -@image-limit-quarter: ~".image-limit-quarter"; -@figure: ~"figure, .figure"; - -@table: ~"table, .table"; -@table-caption: ~"table caption, .table-caption"; -@table-caption-fixer: ~"table[disabled] caption, table.status-disabled caption, .table[disabled] caption, .table.status-disabled caption, table[disabled] .table-caption, table.status-disabled .table-caption, .table[disabled] .table-caption, .table.status-disabled .table-caption"; -@table-caption-top: ~"table caption, .table-caption-top"; -@table-caption-bottom: ~".table-caption-bottom"; -@table-header: ~"table thead, .table-header"; -@table-body: ~"table tbody, .table-body"; -@table-footer: ~"table tfoot, .table-footer"; -@table-row: ~"table tr, .table-row"; -@table-data: ~"table td, .table-data"; -@table-head: ~"table th, .table-head"; -@table-mark: ~".table-mark"; - -@list: ~"ol, ul, dl, .list"; -@list-unordered: ~"ul, .list-unordered"; -@list-ordered: ~"ol, .list-ordered"; -@list-description: ~"dl, .list-description"; -@list-item: ~"li, .list-item"; -@list-description-term: ~"dt, .list-description-term"; -@list-description-details: ~"dd, .list-description-details"; - -@status-disabled: ~"[disabled], .status-disabled"; - -@input: ~'@{input-field}, @{input-area}, @{input-select}, @{input-multiselect}, @{input-button}, @{input-checkbox}, @{input-radio}, .input'; -@INPUT: ~'> @{input-field}, > @{input-area}, > @{input-select}, > @{input-multiselect}, > @{input-button}, > @{input-checkbox}, > @{input-radio}, > .input'; -@input-field: ~'.input-field, input[type="color"], input[type="date"], input[type="datetime-local"], input[type="email"], input[type="file"], input[type="image"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"]'; -@input-area: ~'textarea, .input-area'; -@input-select: ~'select:not([multiple]), .input-select'; -@input-multiselect: ~'select[multiple], .input-multiselect'; -@input-option: ~'option, .input-option'; -@input-optgroup: ~'optgroup, .input-optgroup'; -@input-button: ~'button, input[type="submit"], input[type="reset"], .input-button'; -@input-checkbox: ~'input[type="checkbox"], .input-checkbox'; -@input-radio: ~'input[type="radio"], .input-radio'; - -@form: ~"form, .form"; -@form-label: ~"> label, .form-label"; -@form-label-full: ~".form-label-full"; -@form-input: ~"@{INPUT}, .form-input"; -@form-row: ~".form-row"; -@form-group: ~'.form-group'; -@form-group-label: ~'> label, .form-group-label'; -@form-group-row: ~'.form-group-row'; - -@heading: ~"h1, h2, h3, h4, h5, h6, .heading"; -@HEADING: ~"> h1, > h2, > h3, > h4, > h5, > h6, > .heading"; - -@details: ~".details, details"; -@DETAILS: ~"> .details, > details"; -@details-open: ~".details[open], details[open]"; -@details-summary: ~"> .details-summary, > summary"; -@details-content: ~"> .details-content, > :not(summary)"; - -@anchor: ~"a, .anchor"; -@anchor-broken: ~'a:not([href]), .anchor-broken'; -@anchor-link: ~'a[href], .anchor-link'; -@anchor-download: ~'a[download], .anchor-download'; - -@ruby-parenthesis: ~"rp, .ruby-parenthesis"; -@ruby-text: ~"rt, .ruby-text"; - -@todo: ~".todo"; - -@semantic-abbr: ~"abbr, .semantic-abbr"; -@semantic-b: ~"b, .semantic-b"; -@semantic-cite: ~"cite, .semantic-cite"; -@semantic-code: ~"code, .semantic-code"; -@semantic-dfn: ~"dfn, .semantic-dfn"; -@semantic-em: ~"em, .semantic-em"; -@semantic-i: ~"i, .semantic-i"; -@semantic-kbd: ~"kbd, .semantic-kbd"; -@semantic-kbd-press: ~".semantic-kbd-press"; -@semantic-kbd-release: ~".semantic-kbd-release"; -@semantic-mark: ~"mark, .semantic-mark"; -@semantic-pre: ~"pre, .semantic-pre"; -@semantic-q: ~"q, .semantic-q"; -@semantic-s: ~"s, .semantic-s"; -@semantic-samp: ~"samp, .semantic-samp"; -@semantic-small: ~"small, .semantic-small"; -@semantic-strong: ~"strong, .semantic-strong"; -@semantic-u: ~"u, .semantic-u"; -@semantic-var: ~"var, .semantic-var"; - -@color-red: ~".color-red"; -@color-orange: ~".color-orange"; -@color-yellow: ~".color-yellow"; -@color-lime: ~".color-lime, .color-green"; -@color-cyan: ~".color-cyan"; -@color-blue: ~".color-blue"; -@color-magenta: ~".color-magenta"; -@color-gray: ~".color-gray"; - -@special-remove: ~".special-remove, .indexbreakrow"; -@special-hide: ~".special-hide"; -@special-block-center: ~".special-block-center, #indexlist"; diff --git a/src/targets/module.less b/src/targets/module.less deleted file mode 100644 index 39d2321..0000000 --- a/src/targets/module.less +++ /dev/null @@ -1,124 +0,0 @@ -@bluelib: ~".bluelib"; -@all: ~"*, .all"; - -@page-footer: ~".page-footer"; - -@layout: ~".layout"; -@layout-fill: ~".layout-fill"; -@layout-fill-single: ~".layout-fill-single"; -@layout-threecol: ~".layout-threecol"; -@layout-threecol-left: ~".layout-threecol-left"; -@layout-threecol-center: ~".layout-threecol-center"; -@layout-threecol-right: ~".layout-threecol-right"; - -@panel: ~".panel"; -@panel-box: ~".panel-box"; -@panel-dialog: ~".panel-dialog"; -@panel-parenthesis: ~".panel-parenthesis"; - -@chapter: ~".chapter"; -@chapter-forcewrap: ~".chapter-forcewrap"; - -@separator: ~".separator"; -@separator-light: ~".separator-light"; -@separator-heavy: ~".separator-heavy"; - -@image: ~".image"; -@image-limit-half: ~".image-limit-half"; -@image-limit-quarter: ~".image-limit-quarter"; -@figure: ~".figure"; - -@table: ~".table"; -@table-caption: ~".table-caption"; -@table-caption-fixer: ~".table.status-disabled .table-caption"; -@table-caption-top: ~".table-caption-top"; -@table-caption-bottom: ~".table-caption-bottom"; -@table-header: ~".table-header"; -@table-body: ~".table-body"; -@table-footer: ~".table-footer"; -@table-row: ~".table-row"; -@table-data: ~".table-data"; -@table-head: ~".table-head"; -@table-mark: ~".table-mark"; - -@list: ~".list"; -@list-unordered: ~".list-unordered"; -@list-ordered: ~".list-ordered"; -@list-description: ~".list-description"; -@list-item: ~".list-item"; -@list-description-term: ~".list-description-term"; -@list-description-details: ~".list-description-details"; - -@status-disabled: ~".status-disabled"; - -@input: ~'.input'; -@input-field: ~'.input-field'; -@input-area: ~'.input-area'; -@input-select: ~'.input-select'; -@input-multiselect: ~'.input-multiselect'; -@input-option: ~'.input-option'; -@input-optgroup: ~'.input-optgroup'; -@input-button: ~'.input-button'; -@input-checkbox: ~'.input-checkbox'; -@input-radio: ~'.input-radio'; - -@form: ~".form"; -@form-label: ~".form-label"; -@form-label-full: ~".form-label-full"; -@form-input: ~".form-input"; -@form-row: ~".form-row"; -@form-group: ~'.form-group'; -@form-group-label: ~'.form-group-label'; -@form-group-row: ~'.form-group-row'; - -@heading: ~".heading"; -@HEADING: ~"> .heading"; - -@details: ~".details"; -@DETAILS: ~"> .details"; -@details-open: ~".details[open]"; -@details-summary: ~"> .details-summary"; -@details-content: ~"> .details-content"; - -@anchor: ~".anchor"; -@anchor-broken: ~'.anchor-broken'; -@anchor-link: ~'.anchor-link'; -@anchor-download: ~'.anchor-download'; - -@ruby-parenthesis: ~".ruby-parenthesis"; -@ruby-text: ~".ruby-text"; - -@todo: ~".todo"; - -@semantic-abbr: ~"abbr, .semantic-abbr"; -@semantic-b: ~".semantic-b"; -@semantic-cite: ~".semantic-cite"; -@semantic-code: ~".semantic-code"; -@semantic-dfn: ~".semantic-dfn"; -@semantic-em: ~".semantic-em"; -@semantic-i: ~".semantic-i"; -@semantic-kbd: ~".semantic-kbd"; -@semantic-kbd-press: ~".semantic-kbd-press"; -@semantic-kbd-release: ~".semantic-kbd-release"; -@semantic-mark: ~".semantic-mark"; -@semantic-pre: ~".semantic-pre"; -@semantic-q: ~".semantic-q"; -@semantic-s: ~".semantic-s"; -@semantic-samp: ~".semantic-samp"; -@semantic-small: ~".semantic-small"; -@semantic-strong: ~".semantic-strong"; -@semantic-u: ~".semantic-u"; -@semantic-var: ~".semantic-var"; - -@color-red: ~".color-red"; -@color-orange: ~".color-orange"; -@color-yellow: ~".color-yellow"; -@color-lime: ~".color-lime"; -@color-cyan: ~".color-cyan"; -@color-blue: ~".color-blue"; -@color-magenta: ~".color-magenta"; -@color-gray: ~".color-gray"; - -@special-remove: ~".special-remove"; -@special-hide: ~".special-hide"; -@special-block-center: ~".special-block-center"; diff --git a/src/targets/root.less b/src/targets/root.less deleted file mode 100644 index f76ad84..0000000 --- a/src/targets/root.less +++ /dev/null @@ -1,128 +0,0 @@ -// The root target defines selector in a way that allows for it to be added to a simple HTML page and for it to be displayed with - -@bluelib: ~"body, .bluelib"; -@all: ~"*"; - -@page-footer: ~"footer, .page-footer"; - -@layout: ~".layout"; -@layout-fill: ~".layout-fill"; -@layout-fill-single: ~".layout-fill-single"; -@layout-threecol: ~".layout-threecol"; -@layout-threecol-left: ~".layout-threecol-left"; -@layout-threecol-center: ~".layout-threecol-center"; -@layout-threecol-right: ~".layout-threecol-right"; - -@panel: ~".panel"; -@panel-box: ~".panel-box"; -@panel-dialog: ~".panel-dialog"; -@panel-parenthesis: ~".panel-parenthesis"; -@panel-table: ".panel-table"; - -@chapter: ~".chapter"; -@chapter-forcewrap: ~".chapter-forcewrap"; - -@separator: ~"hr, .separator"; -@separator-light: ~".separator-light"; -@separator-heavy: ~".separator-heavy"; - -@image: ~"img, .image"; -@image-limit-half: ~".image-limit-half"; -@image-limit-quarter: ~".image-limit-quarter"; -@figure: ~"figure, .figure"; - -@table: ~"table, .table"; -@table-caption: ~"table caption, .table-caption"; -@table-caption-fixer: ~"table[disabled] caption, table.status-disabled caption, .table[disabled] caption, .table.status-disabled caption, table[disabled] .table-caption, table.status-disabled .table-caption, .table[disabled] .table-caption, .table.status-disabled .table-caption"; -@table-caption-top: ~"table caption, .table-caption-top"; -@table-caption-bottom: ~".table-caption-bottom"; -@table-header: ~"table thead, .table-header"; -@table-body: ~"table tbody, .table-body"; -@table-footer: ~"table tfoot, .table-footer"; -@table-row: ~"table tr, .table-row"; -@table-data: ~"table td, .table-data"; -@table-head: ~"table th, .table-head"; -@table-mark: ~".table-mark"; - -@list: ~"ol, ul, dl, .list"; -@list-unordered: ~"ul, .list-unordered"; -@list-ordered: ~"ol, .list-ordered"; -@list-description: ~"dl, .list-description"; -@list-item: ~"li, .list-item"; -@list-description-term: ~"dt, .list-description-term"; -@list-description-details: ~"dd, .list-description-details"; - -@status-disabled: ~"[disabled], .status-disabled"; - -@input: ~'@{input-field}, @{input-area}, @{input-select}, @{input-multiselect}, @{input-button}, @{input-checkbox}, @{input-radio}, .input'; -@INPUT: ~'> @{input-field}, > @{input-area}, > @{input-select}, > @{input-multiselect}, > @{input-button}, > @{input-checkbox}, > @{input-radio}, > .input'; -@input-field: ~'.input-field, input[type="color"], input[type="date"], input[type="datetime-local"], input[type="email"], input[type="file"], input[type="image"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"]'; -@input-area: ~'textarea, .input-area'; -@input-select: ~'select:not([multiple]), .input-select'; -@input-multiselect: ~'select[multiple], .input-multiselect'; -@input-option: ~'option, .input-option'; -@input-optgroup: ~'optgroup, .input-optgroup'; -@input-button: ~'button, input[type="submit"], input[type="reset"], .input-button'; -@input-checkbox: ~'input[type="checkbox"], .input-checkbox'; -@input-radio: ~'input[type="radio"], .input-radio'; - -@form: ~"form, .form"; -@form-label: ~"> label, .form-label"; -@form-label-full: ~".form-label-full"; -@form-input: ~"@{INPUT}, .form-input"; -@form-row: ~".form-row"; -@form-group: ~'.form-group'; -@form-group-label: ~'> label, .form-group-label'; -@form-group-row: ~'.form-group-row'; - -@heading: ~"h1, h2, h3, h4, h5, h6, .heading"; -@HEADING: ~"> h1, > h2, > h3, > h4, > h5, > h6, > .heading"; - -@details: ~".details, details"; -@DETAILS: ~"> .details, > details"; -@details-open: ~".details[open], details[open]"; -@details-summary: ~"> .details-summary, > summary"; -@details-content: ~"> .details-content, > :not(summary)"; - -@anchor: ~"a, .anchor"; -@anchor-broken: ~'a:not([href]), .anchor-broken'; -@anchor-link: ~'a[href], .anchor-link'; -@anchor-download: ~'a[download], .anchor-download'; - -@ruby-parenthesis: ~"rp, .ruby-parenthesis"; -@ruby-text: ~"rt, .ruby-text"; - -@todo: ~".todo"; - -@semantic-abbr: ~"abbr, .semantic-abbr"; -@semantic-b: ~"b, .semantic-b"; -@semantic-cite: ~"cite, .semantic-cite"; -@semantic-code: ~"code, .semantic-code"; -@semantic-dfn: ~"dfn, .semantic-dfn"; -@semantic-em: ~"em, .semantic-em"; -@semantic-i: ~"i, .semantic-i"; -@semantic-kbd: ~"kbd, .semantic-kbd"; -@semantic-kbd-press: ~".semantic-kbd-press"; -@semantic-kbd-release: ~".semantic-kbd-release"; -@semantic-mark: ~"mark, .semantic-mark"; -@semantic-pre: ~"pre, .semantic-pre"; -@semantic-q: ~"q, .semantic-q"; -@semantic-s: ~"s, .semantic-s"; -@semantic-samp: ~"samp, .semantic-samp"; -@semantic-small: ~"small, .semantic-small"; -@semantic-strong: ~"strong, .semantic-strong"; -@semantic-u: ~"u, .semantic-u"; -@semantic-var: ~"var, .semantic-var"; - -@color-red: ~".color-red"; -@color-orange: ~".color-orange"; -@color-yellow: ~".color-yellow"; -@color-lime: ~".color-lime, .color-green"; -@color-cyan: ~".color-cyan"; -@color-blue: ~".color-blue"; -@color-magenta: ~".color-magenta"; -@color-gray: ~".color-gray"; - -@special-remove: ~".special-remove"; -@special-hide: ~".special-hide"; -@special-block-center: ~".special-block-center"; diff --git a/src/themes/amber.less b/src/themes/amber.less deleted file mode 100644 index 93abdf9..0000000 --- a/src/themes/amber.less +++ /dev/null @@ -1,21 +0,0 @@ -@{bluelib} { - .set-var-rgb(bluelib-background; 39; 33; 33); - .set-var-rgb(bluelib-foreground; 225; 80; 11); - .set-var-rgb(bluelib-accent; 246; 233; 233); - - .set-var-rgb(bluelib-link; 255; 239; 154); - .set-var-rgb(bluelib-broken; 218; 153; 246); - .set-var-rgb(bluelib-visited; 255; 187; 154); - .set-var-rgb(bluelib-download; 149; 246; 212); - - .set-var-rgb(bluelib-red; 255; 80; 80); - .set-var-rgb(bluelib-orange; 255; 175; 80); - .set-var-rgb(bluelib-yellow; 255; 255; 80); - .set-var-rgb(bluelib-lime; 80; 255; 80); - .set-var-rgb(bluelib-cyan; 80; 255; 255); - .set-var-rgb(bluelib-blue; 80; 80; 255); - .set-var-rgb(bluelib-magenta; 255; 80; 255); - .set-var-rgb(bluelib-gray; 187; 187; 187); - - --bluelib-polarity: 1; -} diff --git a/src/themes/hacker.less b/src/themes/hacker.less deleted file mode 100644 index d8ead2a..0000000 --- a/src/themes/hacker.less +++ /dev/null @@ -1,21 +0,0 @@ -@{bluelib} { - .set-var-rgb(bluelib-background; 4; 4; 4); - .set-var-rgb(bluelib-foreground; 0; 255; 0); - .set-var-rgb(bluelib-accent; 0; 255; 0); - - .set-var-rgb(bluelib-link; 127; 255; 127); - .set-var-rgb(bluelib-broken; 255; 0; 0); - .set-var-rgb(bluelib-visited; 64; 180; 64); - .set-var-rgb(bluelib-download; 255; 255; 255); - - .set-var-rgb(bluelib-red; 255; 125; 125); - .set-var-rgb(bluelib-orange; 255; 187; 125); - .set-var-rgb(bluelib-yellow; 255; 255; 125); - .set-var-rgb(bluelib-lime; 125; 255; 125); - .set-var-rgb(bluelib-cyan; 125; 255; 255); - .set-var-rgb(bluelib-blue; 125; 125; 255); - .set-var-rgb(bluelib-magenta; 255; 125; 255); - .set-var-rgb(bluelib-gray; 187; 187; 187); - - --bluelib-polarity: 1; -} \ No newline at end of file diff --git a/src/themes/paper.less b/src/themes/paper.less deleted file mode 100644 index e5dc8a9..0000000 --- a/src/themes/paper.less +++ /dev/null @@ -1,21 +0,0 @@ -@{bluelib} { - .set-var-rgb(bluelib-background; 255; 255; 255); - .set-var-rgb(bluelib-foreground; 24; 24; 24); - .set-var-rgb(bluelib-accent; 24; 24; 24); - - .set-var-rgb(bluelib-link; 0; 147; 147); - .set-var-rgb(bluelib-broken; 245; 111; 0); - .set-var-rgb(bluelib-visited; 9; 101; 156); - .set-var-rgb(bluelib-download; 0; 164; 106); - - .set-var-rgb(bluelib-red; 200; 0; 0); - .set-var-rgb(bluelib-orange; 200; 165; 0); - .set-var-rgb(bluelib-yellow; 200; 200; 0); - .set-var-rgb(bluelib-lime; 0; 200; 0); - .set-var-rgb(bluelib-cyan; 0; 200; 200); - .set-var-rgb(bluelib-blue; 0; 0; 200); - .set-var-rgb(bluelib-magenta; 200; 0; 200); - .set-var-rgb(bluelib-gray; 128; 128; 128); - - --bluelib-polarity: -1; -} diff --git a/src/themes/pumpkin.less b/src/themes/pumpkin.less deleted file mode 100644 index f6a7bbf..0000000 --- a/src/themes/pumpkin.less +++ /dev/null @@ -1,21 +0,0 @@ -@{bluelib} { - .set-var-rgb(bluelib-background; 25; 16; 48); - .set-var-rgb(bluelib-foreground; 226; 140; 35); - .set-var-rgb(bluelib-accent; 254; 237; 180); - - .set-var-rgb(bluelib-link; 0; 202; 202); - .set-var-rgb(bluelib-broken; 255; 116; 0); - .set-var-rgb(bluelib-visited; 12; 134; 207); - .set-var-rgb(bluelib-download; 0; 211; 137); - - .set-var-rgb(bluelib-red; 255; 125; 125); - .set-var-rgb(bluelib-orange; 255; 187; 125); - .set-var-rgb(bluelib-yellow; 255; 255; 125); - .set-var-rgb(bluelib-lime; 125; 255; 125); - .set-var-rgb(bluelib-cyan; 125; 255; 255); - .set-var-rgb(bluelib-blue; 125; 125; 255); - .set-var-rgb(bluelib-magenta; 255; 125; 255); - .set-var-rgb(bluelib-gray; 187; 187; 187); - - --bluelib-polarity: 1; -} diff --git a/src/themes/royalblue.less b/src/themes/royalblue.less deleted file mode 100644 index a6a367b..0000000 --- a/src/themes/royalblue.less +++ /dev/null @@ -1,21 +0,0 @@ -@{bluelib} { - .set-var-rgb(bluelib-background; 13; 25; 59); - .set-var-rgb(bluelib-foreground; 160; 204; 255); - .set-var-rgb(bluelib-accent; 255; 255; 255); - - .set-var-rgb(bluelib-link; 0; 202; 202); - .set-var-rgb(bluelib-broken; 255; 116; 0); - .set-var-rgb(bluelib-visited; 12; 134; 207); - .set-var-rgb(bluelib-download; 0; 211; 137); - - .set-var-rgb(bluelib-red; 255; 125; 125); - .set-var-rgb(bluelib-orange; 255; 187; 125); - .set-var-rgb(bluelib-yellow; 255; 255; 125); - .set-var-rgb(bluelib-lime; 125; 255; 125); - .set-var-rgb(bluelib-cyan; 125; 255; 255); - .set-var-rgb(bluelib-blue; 125; 125; 255); - .set-var-rgb(bluelib-magenta; 255; 125; 255); - .set-var-rgb(bluelib-gray; 187; 187; 187); - - --bluelib-polarity: 1; -} diff --git a/src/themes/royaldawn.less b/src/themes/royaldawn.less deleted file mode 100644 index 18a4a85..0000000 --- a/src/themes/royaldawn.less +++ /dev/null @@ -1,24 +0,0 @@ -@{bluelib} { - .set-var-rgb(bluelib-background; 117; 55; 90); - .set-var-rgb(bluelib-foreground; 254; 237; 180); - .set-var-rgb(bluelib-accent; 255; 255; 255); - - .set-var-rgb(bluelib-link; 87; 255; 255); - .set-var-rgb(bluelib-broken; 255; 140; 87); - .set-var-rgb(bluelib-visited; 87; 135; 255); - .set-var-rgb(bluelib-download; 87; 255; 175); - - .set-var-rgb(bluelib-red; 255; 125; 125); - .set-var-rgb(bluelib-orange; 255; 187; 125); - .set-var-rgb(bluelib-yellow; 255; 255; 125); - .set-var-rgb(bluelib-lime; 125; 255; 125); - .set-var-rgb(bluelib-cyan; 125; 255; 255); - .set-var-rgb(bluelib-blue; 125; 125; 255); - .set-var-rgb(bluelib-magenta; 255; 125; 255); - .set-var-rgb(bluelib-gray; 187; 187; 187); - - --bluelib-polarity: 1; - - background: linear-gradient(45deg, rgba(222,98,14,1) 0%, rgba(117,55,90,1) 50%, rgba(62,37,125,1) 100%); - background-attachment: fixed; -} diff --git a/src/themes/skeleton.less b/src/themes/skeleton.less deleted file mode 100644 index f54ae20..0000000 --- a/src/themes/skeleton.less +++ /dev/null @@ -1,1418 +0,0 @@ -/// ===== Root ===== -/// Every HTML document using Bluelib must define a root, an element where all bluelib styles can start being applied. -/// Elements outside the root won't be styled at all, allowing Bluelib's styling to be contained in components or modules of a website. - -@{bluelib} { - - /// ===== Macros ===== - /// Less allows defining variables to reduce the amount of boilerplate code to write while defining the rules. - /// In Bluelib, these are called macros. - - // - - @rgb-background: rgb( - var(--bluelib-background-r), - var(--bluelib-background-g), - var(--bluelib-background-b) - ); - @rgb-foreground: rgb( - var(--bluelib-foreground-r), - var(--bluelib-foreground-g), - var(--bluelib-foreground-b) - ); - @rgb-accent: rgb( - var(--bluelib-accent-r), - var(--bluelib-accent-g), - var(--bluelib-accent-b) - ); - - @rgb-link: rgb( - var(--bluelib-link-r), - var(--bluelib-link-g), - var(--bluelib-link-b) - ); - @rgb-broken: rgb( - var(--bluelib-broken-r), - var(--bluelib-broken-g), - var(--bluelib-broken-b) - ); - @rgb-visited: rgb( - var(--bluelib-visited-r), - var(--bluelib-visited-g), - var(--bluelib-visited-b) - ); - @rgb-download: rgb( - var(--bluelib-download-r), - var(--bluelib-download-g), - var(--bluelib-download-b) - ); - - @rgb-red: rgb( - var(--bluelib-red-r), - var(--bluelib-red-g), - var(--bluelib-red-b) - ); - @rgb-orange: rgb( - var(--bluelib-orange-r), - var(--bluelib-orange-g), - var(--bluelib-orange-b) - ); - @rgb-yellow: rgb( - var(--bluelib-yellow-r), - var(--bluelib-yellow-g), - var(--bluelib-yellow-b) - ); - @rgb-lime: rgb( - var(--bluelib-lime-r), - var(--bluelib-lime-g), - var(--bluelib-lime-b) - ); - @rgb-cyan: rgb( - var(--bluelib-cyan-r), - var(--bluelib-cyan-g), - var(--bluelib-cyan-b) - ); - @rgb-blue: rgb( - var(--bluelib-blue-r), - var(--bluelib-blue-g), - var(--bluelib-blue-b) - ); - @rgb-magenta: rgb( - var(--bluelib-magenta-r), - var(--bluelib-magenta-g), - var(--bluelib-magenta-b) - ); - @rgb-gray: rgb( - var(--bluelib-gray-r), - var(--bluelib-gray-g), - var(--bluelib-gray-b) - ); - - @rgb-leaving: rgba( - calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), - calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), - calc(255 * (((var(--bluelib-polarity) / 2) * -1) + 0.5)), - 1.000 - ); - @rgb-towards: rgba( - calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), - calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), - calc(255 * ((var(--bluelib-polarity) / 2) + 0.5)), - 1.000 - ); - - @c0: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.030 - ); - @c1: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.125 - ); - @c2: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.220 - ); - @c3: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.315 - ); - @c4: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.410 - ); - @c5: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.505 - ); - @c6: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.600 - ); - @c7: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.700 - ); - @c8: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.800 - ); - @c9: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 0.900 - ); - @cA: rgba( - var(--bluelib-color-r), - var(--bluelib-color-g), - var(--bluelib-color-b), - 1.000 - ); - @cB: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 10)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 10)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 10)), - 1.000 - ); - @cC: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 20)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 20)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 20)), - 1.000 - ); - @cD: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 30)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 30)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 30)), - 1.000 - ); - @cE: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 40)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 40)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 40)), - 1.000 - ); - @cF: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 50)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 50)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 50)), - 1.000 - ); - @cG: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 60)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 60)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 60)), - 1.000 - ); - @cH: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 70)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 70)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 70)), - 1.000 - ); - @cI: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 80)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 80)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 80)), - 1.000 - ); - @cJ: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 90)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 90)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 90)), - 1.000 - ); - @cK: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 100)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 100)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 100)), - 1.000 - ); - @cL: rgba( - calc(var(--bluelib-color-r) + (var(--bluelib-polarity) * 110)), - calc(var(--bluelib-color-g) + (var(--bluelib-polarity) * 110)), - calc(var(--bluelib-color-b) + (var(--bluelib-polarity) * 110)), - 1.000 - ); - - // - - /// ===== All ===== - /// By default, browsers style elements with some weird rules. - /// This is an attempt to correct them, and to implement some Bluelib magic. - - // - - &, @{all} { - - // Globally set the box-sizing to border-box, as content-box is completely insane - &, &::before, &::after { - box-sizing: border-box; - } - - // Bluelib magic! - // This rule sets the color of all text to be equal to the current .bluelib-color() at 100% opacity. - // Thanks, CSS variables! - color: @cA; - - // Get the scrollbar color from the theme - scrollbar-color: @rgb-foreground @rgb-background; - } - - // - - /// ===== Root ===== - /// The root element has some rules itself. - - // - - // Set default fonts - --bluelib-title-family: sans-serif; - --bluelib-title-weight: 400; - --bluelib-text-family: sans-serif; - --bluelib-text-weight: 400; - --bluelib-code-family: monospace; - --bluelib-code-weight: 400; - - // Set the background defined in the palette - background-color: @rgb-background; - - // Make the element fill all available space - width: 100%; - height: 100%; - - // And remove its margin, in case it is the body - margin: 0; - - // Set the base color to the foreground defined in the palette - .map-var-rgb(bluelib-color; bluelib-foreground); - - // Set the base font - .use-var-font(bluelib-text); - - // - - /// ===== Page ===== - /// These rules apply to the four page areas: main, aside, header and footer - - // - @{page-footer} { - margin-top: 1em; - text-align: center; - font-size: x-small; - } - // - - /// ===== Layouts ===== - /// Layouts arrange the content displayed inside the root. - /// Layouts are the second element in the Bluelib hierarchy, immediately following the root. - /// Ideally, a single layout should be used per page. - - // - - // The base layout class. - @{layout} { - display: grid; - justify-content: stretch; - align-items: stretch; - } - - // A layout with a single container spanning the whole screen. - @{layout-fill} { - padding: 4px; - - grid-template-areas: - "single"; - grid-template-columns: 1fr; - grid-template-rows: 1fr; - } - - @{layout-fill-single} { - grid-area: single; - } - - // A layout with a centered 1024px wide main container and two symmetric containers at the sides. - @{layout-threecol} { - padding: 4px; - grid-column-gap: 8px; - - @media screen and (min-width: 1281px) { - grid-template-areas: - "left center right"; - grid-template-columns: 1fr auto 1fr; - grid-template-rows: 1fr; - } - - // If the side containers would be smaller than 128px (if the screen is narrower than 1280px), the smaller containers are moved below the main one. - @media screen and (max-width: 1280px) { - grid-template-areas: - "center center" - "left right"; - grid-template-columns: 1fr 1fr; - grid-template-rows: auto auto; - - // Keep the container limited to 1024px and centered - max-width: 1024px; - margin-left: auto; - margin-right: auto; - } - } - - @{layout-threecol-left} { - grid-area: left; - - @media screen and (min-width: 1281px) { - justify-self: end; - } - - @media screen and (max-width: 1280px) { - justify-self: stretch; - } - } - - @{layout-threecol-center} { - grid-area: center; - - @media screen and (min-width: 1281px) { - width: 1024px; - } - - @media screen and (max-width: 1280px) { - // Ensure the container doesn't eat up all the space - max-width: 1024px; - } - } - - @{layout-threecol-right} { - grid-area: right; - - @media screen and (min-width: 1281px) { - justify-self: start; - } - - @media screen and (max-width: 1280px) { - justify-self: stretch; - } - } - - // - - /// ===== Panels ===== - /// Panels are the main sectioning elements available in Bluelib. - /// Many instances of them should be present on the page! - /// They should group small amounts of tightly related content, which can be understood more or less separately from the rest of the page. - - // - - // The base panel class. - @{panel} { - // Panels have a margin to separate them from other elements - margin: 8px 0; - // And a padding to separate them from their contents - padding: 8px; - // And a nice round border - border-radius: 4px; - - // Panels should try to fill the most space possible - width: 100%; - - // And should be wide at least 312px - min-width: 312px; - - background-color: @c0; - border-color: @c1; - - // The first and last elements of a panel should not have a margin - > @{all} { - &:first-child { - margin-top: 0; - } - - &:last-child { - margin-bottom: 0; - } - } - } - - // A panel which encloses its contents with a border. - @{panel-box} { - border-width: 2px; - border-style: solid; - } - - // A panel which encloses its contents with a quote-like border. - @{panel-dialog} { - border-width: 0 0 0 2px; - border-style: solid; - } - - // A panel with no border whose contents are made smaller. - @{panel-parenthesis} { - border-width: 0; - font-size: smaller; - } - - // - - /// ===== Chapters ===== - /// A chapter is an element represents a larger section of text. - - // - - @{chapter} { - display: flex; - flex-wrap: wrap; - gap: 8px; - justify-content: stretch; - align-items: stretch; - - margin: 8px 0; - - > @{all} { - // Allow all children to grow - flex-grow: 1; - // But not to shrink - flex-shrink: 0; - } - - @{HEADING} { - // Headings should fill up all horizontal space available and force a wrap - flex-basis: 100%; - - // They should have a bit of margin to separate them from the other elements - margin-top: 0.2rem; - margin-bottom: 0.2rem; - - // Especially if they are the first or the last children of a chapter, where they have to separate the chapters from each other - &:first-child { - margin-top: 1rem; - } - &:last-child { - margin-bottom: 1rem; - } - } - - > @{panel} { - // Remove the innate margin panels have - margin: 0; - // Have panels split the free space in equal parts - flex-basis: 0; - } - - } - - // Force a split to wrap - @{chapter-forcewrap} { - flex-grow: 0; - flex-shrink: 0; - flex-basis: 100%; - - position: relative; - } - - // - - /// ===== Separators ===== - /// Separators are horizontal lines separating elements. - - // - - @{separator} { - border-width: 1px; - border-style: solid; - border-color: @c5; - } - - @{separator-light} { - border-color: @c1; - } - - @{separator-heavy} { - border-color: @cA; - } - - // - - /// ===== Images ===== - /// Images are changed to block elements and are automatically centered. - - // - - @{image} { - display: block; - - max-width: 100%; - - margin-left: auto; - margin-right: auto; - - object-fit: contain; - } - - @{image-limit-half} { - max-height: max(28.2vw, 50vh); - } - - @{image-limit-quarter} { - max-height: max(14.1vw, 25vh); - } - - @{figure} { - display: inline-flex; - flex-direction: column; - gap: 8px; - - font-size: small; - font-style: italic; - text-align: center; - - margin: 8px 0; - padding: 8px; - - border-width: 2px; - border-style: solid; - border-radius: 4px; - - background-color: @c1; - border-color: @c2; - } - - // - - /// ===== Tables ===== - - // - @{table} { - display: table; - - background-color: @c0; - - border-width: 2px; - border-style: solid; - border-color: @c1; - border-radius: 0 0 4px 4px; - border-collapse: collapse; - - padding: 8px; - margin: 8px 0; - } - - @{table-caption} { - display: table-caption; - - background-color: @c0; - - padding: 4px; - - font-style: italic; - font-size: small; - } - - // Fix for table-caption not disabling itself - @{table-caption-fixer} { - opacity: 50%; - } - - @{table-caption-top} { - caption-side: top; - - border-width: 2px 2px 0 2px; - border-style: solid; - border-color: @c1; - border-radius: 4px 4px 0 0; - } - - @{table-caption-bottom} { - caption-side: bottom; - - border-width: 0 2px 2px 2px; - border-style: solid; - border-color: @c1; - border-radius: 0 0 4px 4px; - } - - @{table-header} { - display: table-header-group; - - background-color: @c0; - } - - @{table-body} { - display: table-row-group; - } - - @{table-footer} { - display: table-footer-group; - - background-color: @c0; - } - - @{table-row} { - display: table-row; - - border: 1px solid @c1; - } - - @{table-data}, @{table-head} { - display: table-cell; - - border: 1px solid @c1; - padding: 8px; - } - - @{table-data} { - - } - - @{table-head} { - color: @rgb-accent; - } - - @{table-mark} { - background-color: @c2; - color: @cF; - } - - /// ===== Lists ===== - - @{list} { - - } - - @{list-unordered} { - - } - - @{list-ordered} { - - } - - @{list-item} { - margin: 0.35rem 0; - - &::marker { - color: @c5; - } - } - - @{list-description} { - - } - - @{list-description-term} { - margin-top: 0.7rem; - margin-bottom: 0.35rem; - - font-size: larger; - } - - @{list-description-details} { - margin-top: 0.35rem; - margin-bottom: 0.7rem; - margin-left: 16px; - } - - // - - /// ===== Status ===== - /// Status are classes that can be applied to elements to indicate that special interactions are available. - - // - - @{status-disabled} { - opacity: 50%; - - // All sub-elements of a disabled element should have a not-allowed cursor - &, @{all} { - cursor: not-allowed !important; - } - } - - // - - /// ===== Inputs ===== - /// Inputs are the interactable parts of a website. - - // - - @{input} { - // Disable the browser font override - font: inherit; - - // Use the maximum width possible - width: 100%; - - // They should have a solid border - border-style: solid; - // Unless they are disabled, then they should have a dashed one - &@{status-disabled} { - border-style: dashed; - } - - // They should use the current bluelib color - border-color: @c3; - color: @cA; - background-color: @c0; - - // Both for themselves and their placeholder - &::placeholder { - color: @c4; - opacity: 1; - } - - // They should become lighter if hovered - &:hover { - border-color: @c6; - color: @cC; - background-color: @c1; - - &::placeholder { - color: @c7; - } - } - - // And even lighter if focused - &:focus { - border-color: @cA; - color: @cF; - background-color: @c2; - - &::placeholder { - color: @c7; - } - } - - // Unless they are disabled - &@{status-disabled} { - &:hover, &:focus { - border-color: @c3; - color: @cA; - background-color: @c0; - - &::placeholder { - color: @c4; - } - } - } - - // If they are optional, their contents should be in italic - &:optional, &:optional::placeholder { - font-style: italic; - } - - // Color the elements based on validation - // Temporarily disabled due to some browser quirks - // &:invalid { - // .bluelib-color(@hex-red); - // } - // &:valid { - // .bluelib-color(@hex-lime) - // } - - // If the browser wants the focus to be more appearent, don't draw an ugly focus ring and let every element define a better way - &:focus-visible { - outline: none; - } - } - - /// Fields are inputs where text can be entered - @{input-field} { - cursor: text; - - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; - padding: 6px; - } - - @{input-area} { - cursor: text; - - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; - padding: 6px; - } - - /// Selects are inputs where one option between many can be selected - @{input-select} { - cursor: context-menu; - - border-width: 0 0 2px 0; - border-radius: 4px 4px 0 0; - - @media screen and (-webkit-min-device-pixel-ratio:0) { - @{input-option}, @{input-optgroup} { - .use-var-rgb(background-color; bluelib-background); - } - } - } - - /// Multiselects are inputs where multiple options between many can be selected - @{input-multiselect} { - cursor: vertical-text; - - border-width: 0 0 0 2px; - border-radius: 0 4px 4px 0; - - // This is how you change color of the selected options of the multiselect - // But it is very quirky and never works as expected, so it is disabled - // @{input-option} { - // &:checked { - // background-image: linear-gradient(0deg, @bA 0%, @bA 100%); - // } - // } - } - - // Some rules apply to both of them - @{input-select}, @{input-multiselect} { - // Browsers add 4px of unremovable horizontal padding to options for some reason - padding: 6px 4px; - - @{input-option} { - font-weight: normal; - color: @cA; - - // Options should be slightly padded too - padding: 4px; - } - - @{input-optgroup} { - // Style option groups as titles - font-weight: bold; - color: @rgb-accent; - - // Options groups should be slightly padded too - padding: 4px; - - @{input-option} { - // Add a slight indentation - padding: 4px 20px; - - &::before { - // Remove the tabs that Chrome adds before the options - content: ""; - } - } - } - - // Nested optgroups aren't allowed by browsers, so no need to worry about that - } - - @{input-button} { - cursor: pointer; - - // Buttons are rendered as inline elements, but should arrange their contents as if they were flex - display: inline-flex; - // Center the button contents both vertically and horizontally - justify-content: center; - align-items: center; - - // Give the button a nice shape - padding: 6px 16px; - border-radius: 4px; - - // Give them a good clicking feedback - // (sadly it doesn't work if using the keyboard) - &:active { - border-color: @cC; - color: @cF; - background-color: @c3; - } - - // But not if they're disabled - @{status-disabled} { - &:active { - border-color: @c3; - color: @cA; - background-color: @c0; - } - } - } - - @{input-checkbox}, @{input-radio} { - // Disable the default browser style - appearance: none; - - // Make the element feel clickable - cursor: pointer; - - // Set a fixed size - width: 24px; - height: 24px; - - // Override the default border width - border-width: 2px; - - // Prepare the element to display something inside - display: inline-flex; - justify-content: center; - align-items: center; - - &::before { - // Force the creation of a pseudo-element inside - display: block; - content: ""; - - width: 14px; - height: 14px; - } - - // If the element is checked, display it - &:checked::before { - background-color: @c9; - } - - &:hover:checked::before { - background-color: @cB; - } - - &:focus:checked::before { - background-color: @cD; - } - - &:active:checked::before { - background-color: @cD; - } - } - - // Checkbox buttons denote that multiple options can be selected - @{input-checkbox} { - // Checkboxes should be square - border-radius: 4px; - - &::before { - border-radius: 2px; - } - } - - // Radio buttons denote that only an option can be selected - @{input-radio} { - // Radios should be round - border-radius: 100%; - - &::before { - border-radius: 100%; - } - } - - // - - /// ===== Forms ===== - /// Forms are containers where interactable elements are contained. - /// Every interactable is split in two parts: a label on the left and the control on the right. - /// - /// Example: - /// - /// Username | Steffo - /// Email | ste.pigozzi@gmail.com - /// Password | ············ - /// Country | Italy ↓ - /// - /// [Submit] - - // - - @{form} { - display: grid; - - align-items: center; - row-gap: 4px; - column-gap: 8px; - - // Labels should have the greater width between the one they require and 1/6 of the form width. - grid-template-columns: minmax(auto, 1fr) 5fr; - - @{form-label} { - // Labels are on the left column of the grid - grid-column: 1; - // They should be right-aligned - justify-self: end; - text-align: right; - - // Give the labels the accent color - .map-var-rgb(bluelib-color, bluelib-accent); - // And make them slightly bold - font-weight: 500; - } - - - @{form-input} { - // Inputs are on the right column of the grid - grid-column: 2; - // They should occupy all the available space - justify-self: stretch; - } - - // Groups are similar to form-inputs, but may contain multiple inputs inside them - @{form-group} { - grid-column: 2; - - display: flex; - gap: 8px 16px; - justify-content: space-evenly; - align-items: center; - flex-wrap: wrap; - width: 100%; - - background-color: @c0; - padding: 6px; - border-radius: 4px; - - @{form-group-label} { - display: flex; - gap: 6px; - justify-content: center; - align-items: center; - - // Align text to the left - text-align: left; - } - - @{form-group-row} { - flex-basis: 100%; - - justify-content: start; - } - } - - // An element filling a whole row of a form - // Useful for adding buttons or similar flow interruptions - @{form-row} { - grid-column-start: 1; - grid-column-end: 3; - - display: flex; - gap: 8px; - justify-content: center; - align-items: center; - width: 100%; - - margin-top: 8px; - margin-bottom: 8px; - - @{panel} { - margin: 0; - } - - &:first-child { - margin-top: 0; - } - - &:last-child { - margin-bottom: 0; - } - } - } - - // - - /// ===== Headings ===== - /// Headings are titles with a block display. - - // - - @{heading} { - text-align: center; - .map-var-rgb(bluelib-color, bluelib-accent); - .use-var-font(bluelib-title); - } - - // - - /// ===== Anchors ===== - /// Anchors are clickable links to another place, such as a paragraph or a page. - - // - - @{anchor} { - text-decoration-line: underline; - text-decoration-thickness: 1px; - - &:focus-visible { - text-decoration-thickness: 2px; - } - - &:hover, &:focus { - color: @cD; - } - - &:active { - color: @cG; - } - } - - @{anchor-broken} { - cursor: not-allowed; - - .map-var-rgb(bluelib-color, bluelib-broken); - text-decoration-style: dashed; - - &:hover, &:focus, &:active { - color: @cA; - } - } - - @{anchor-link} { - cursor: pointer; - - .map-var-rgb(bluelib-color, bluelib-link); - text-decoration-style: solid; - - &:visited { - .map-var-rgb(bluelib-color, bluelib-visited); - } - } - - @{anchor-download} { - cursor: pointer; - - .map-var-rgb(bluelib-color, bluelib-download); - text-decoration-style: solid; - } - - // - - /// ===== Details and summaries ===== - /// Details are collapsible elements which only display their summary until they are clicked. - - // - - @{details} { - margin-top: 8px; - margin-bottom: 8px; - - @{details-summary} { - cursor: pointer; - - font-size: larger; - - // Prevent the user from accidentaly selecting the summary - user-select: none; - - &:hover { - color: @cC; - } - - &:focus-visible { - color: @cD; - } - - &:active { - color: @cJ; - } - } - - @{details-content} { - margin-top: 0.5rem; - } - - @{DETAILS} { - margin-left: 16px; - } - } - - // - - /// ===== Ruby ===== - /// Ruby text is used in various languages to add annotations to text. - /// Bluelib makes the annotations slightly transparent to differentiate them from the rest of the text. - /// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby - - // - - @{ruby-parenthesis} { - color: @c1; - } - - @{ruby-text} { - color: @c6; - } - - // - - /// ===== Todos ===== - /// Todos are used to mark unfinished parts of a website. - /// Their color ignores the palette and derives from the 🚧 emoji - - // - - @{todo} { - background-color: #292F33; - - --bluelib-color-r: 255; - --bluelib-color-g: 204; - --bluelib-color-b: 77; - - border-color: #FFCC4D; - } - - // - - /// ===== Semantics ===== - /// Semantics are special font effects applied to text with a certain meaning. - - // - - @{semantic-abbr} { - cursor: help; - text-decoration: underline 1px dotted currentColor; - } - - @{semantic-b} { - font-weight: 500; - color: @rgb-accent; - } - - @{semantic-cite} { - font-variant: small-caps; - } - - @{semantic-code} { - .use-var-font(bluelib-code); - } - - @{semantic-dfn} { - text-decoration: underline 1px solid currentColor; - font-style: italic; - } - - @{semantic-em} { - color: @rgb-accent; - } - - @{semantic-i} { - font-style: italic; - } - - @{semantic-kbd} { - background-color: @cA; - border-color: @cA; - color: @rgb-background; - - border-width: 3px; - border-style: ridge; - - padding: 1px; - .use-var-font(bluelib-code); - - > @{semantic-kbd} { - border: none; - padding: 0; - background-color: transparent; - - font-weight: 600; - } - } - - @{semantic-kbd-press} { - border-style: inset; - } - - @{semantic-kbd-release} { - border-style: outset; - } - - @{semantic-mark} { - background-color: @c2; - color: @cF; - } - - @{semantic-pre} { - // Override the default browser behaviour of applying a monospace font to basic pre tags - .use-var-font(bluelib-text) - } - - @{semantic-q} { - font-style: oblique; - - &:before, &:after { - color: @c5; - } - } - - @{semantic-s} { - text-decoration: currentColor line-through; - } - - @{semantic-samp} { - background-color: @rgb-leaving; - color: @rgb-towards; - } - - @{semantic-small} { - font-size: smaller; - } - - @{semantic-strong} { - font-weight: 800; - color: @rgb-accent; - } - - @{semantic-u} { - text-decoration: currentColor underline; - } - - @{semantic-var} { - font-style: normal; - color: @rgb-accent; - } - - // - - /// ===== Colors ===== - /// Colors are classes which apply a certain color from the palette to the bluelib-color of the element which has them. - - // - - @{color-red} { - .map-var-rgb(bluelib-color, bluelib-red); - } - - @{color-orange} { - .map-var-rgb(bluelib-color, bluelib-orange); - } - - @{color-yellow} { - .map-var-rgb(bluelib-color, bluelib-yellow); - } - - @{color-lime} { - .map-var-rgb(bluelib-color, bluelib-lime); - } - - @{color-cyan} { - .map-var-rgb(bluelib-color, bluelib-cyan); - } - - @{color-blue} { - .map-var-rgb(bluelib-color, bluelib-blue); - } - - @{color-magenta} { - .map-var-rgb(bluelib-color, bluelib-magenta); - } - - @{color-gray} { - .map-var-rgb(bluelib-color, bluelib-gray); - } - - // - - /// ===== Special ===== - /// Special rules apply particular properties to certain pre-existing elements for certain targets. - - // - - @{special-remove} { - display: none !important; - } - - @{special-hide} { - visibility: hidden !important; - } - - @{special-block-center} { - margin-left: auto !important; - margin-right: auto !important; - } - - // -} diff --git a/src/themes/sophon.less b/src/themes/sophon.less deleted file mode 100644 index b307bc3..0000000 --- a/src/themes/sophon.less +++ /dev/null @@ -1,22 +0,0 @@ -@{bluelib} { - // rgb(0, 0, 20) - .set-var-rgb(bluelib-background; 0; 0; 20); - .set-var-rgb(bluelib-foreground; 45; 154; 255); - .set-var-rgb(bluelib-accent; 250; 250; 250); - - .set-var-rgb(bluelib-link; 0; 202; 202); - .set-var-rgb(bluelib-broken; 255; 116; 0); - .set-var-rgb(bluelib-visited; 134; 33; 207); - .set-var-rgb(bluelib-download; 0; 211; 137); - - .set-var-rgb(bluelib-red; 255; 125; 125); - .set-var-rgb(bluelib-orange; 255; 187; 125); - .set-var-rgb(bluelib-yellow; 255; 255; 125); - .set-var-rgb(bluelib-lime; 125; 255; 125); - .set-var-rgb(bluelib-cyan; 125; 255; 255); - .set-var-rgb(bluelib-blue; 125; 125; 255); - .set-var-rgb(bluelib-magenta; 255; 125; 255); - .set-var-rgb(bluelib-gray; 187; 187; 187); - - --bluelib-polarity: 1; -} diff --git a/src/utils/mixins.less b/src/utils/mixins.less deleted file mode 100644 index 7cc9087..0000000 --- a/src/utils/mixins.less +++ /dev/null @@ -1,43 +0,0 @@ -.set-var-rgb(@property; @r; @g; @b) { - --@{property}-r: @r; - --@{property}-g: @g; - --@{property}-b: @b; -} - -.map-var-rgb(@property; @source) { - --@{property}-r: var( ~"--@{source}-r" ); - --@{property}-g: var( ~"--@{source}-g" ); - --@{property}-b: var( ~"--@{source}-b" ); -} - -.use-var-rgb(@property; @source) { - @{property}: rgb( - var(~"--@{source}-r"), - var(~"--@{source}-g"), - var(~"--@{source}-b") - ); -} - -.use-var-rgb-with-alpha(@property; @source; @alpha) { - @{property}: rgba( - var(~"--@{source}-r"), - var(~"--@{source}-g"), - var(~"--@{source}-b"), - @alpha - ); -} - -.set-var-font(@property; @family; @weight) { - --@{property}-family: @family; - --@{property}-weight: @weight; -} - -.map-var-font(@property; @source) { - --@{property}-family: var( ~"--@{source}-family"); - --@{property}-weight: var( ~"--@{source}-weight"); -} - -.use-var-font(@source) { - font-family: var( ~"--@{source}-family"); - font-weight: var( ~"--@{source}-weight"); -} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..6153add --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1073 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.12.11": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@rollup/plugin-node-resolve@^13.0.4": + version "13.3.0" + resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz#da1c5c5ce8316cef96a2f823d111c1e4e498801c" + integrity sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + deepmerge "^4.2.2" + is-builtin-module "^3.1.0" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@types/accepts@*": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + dependencies: + "@types/node" "*" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/command-line-args@^5.0.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz#adbb77980a1cc376bb208e3f4142e907410430f6" + integrity sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA== + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/content-disposition@*": + version "0.5.5" + resolved "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz#650820e95de346e1f84e30667d168c8fd25aa6e3" + integrity sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA== + +"@types/cookies@*": + version "0.7.7" + resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz#7a92453d1d16389c05a5301eef566f34946cfd81" + integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@^4.17.18": + version "4.17.31" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.14" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/http-assert@*": + version "1.5.3" + resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661" + integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== + +"@types/http-errors@*": + version "1.8.2" + resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz#7315b4c4c54f82d13fa61c228ec5c2ea5cc9e0e1" + integrity sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w== + +"@types/keygrip@*": + version "1.0.2" + resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/koa-compose@*": + version "3.2.5" + resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + dependencies: + "@types/koa" "*" + +"@types/koa@*", "@types/koa@^2.11.6": + version "2.13.5" + resolved "https://registry.npmjs.org/@types/koa/-/koa-2.13.5.tgz#64b3ca4d54e08c0062e89ec666c9f45443b21a61" + integrity sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/node@*": + version "18.8.3" + resolved "https://registry.npmjs.org/@types/node/-/node-18.8.3.tgz#ce750ab4017effa51aed6a7230651778d54e327c" + integrity sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w== + +"@types/parse5@^6.0.1": + version "6.0.3" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" + integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.0" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/ws@^7.4.0": + version "7.4.7" + resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@web/config-loader@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz#8325ea54f75ef2ee7166783e64e66936db25bff7" + integrity sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ== + dependencies: + semver "^7.3.4" + +"@web/dev-server-core@^0.3.19": + version "0.3.19" + resolved "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz#b61f9a0b92351371347a758b30ba19e683c72e94" + integrity sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA== + dependencies: + "@types/koa" "^2.11.6" + "@types/ws" "^7.4.0" + "@web/parse5-utils" "^1.2.0" + chokidar "^3.4.3" + clone "^2.1.2" + es-module-lexer "^1.0.0" + get-stream "^6.0.0" + is-stream "^2.0.0" + isbinaryfile "^4.0.6" + koa "^2.13.0" + koa-etag "^4.0.0" + koa-send "^5.0.1" + koa-static "^5.0.0" + lru-cache "^6.0.0" + mime-types "^2.1.27" + parse5 "^6.0.1" + picomatch "^2.2.2" + ws "^7.4.2" + +"@web/dev-server-rollup@^0.3.19": + version "0.3.19" + resolved "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz#188f3a37bcc38f4dc1b208663b14ab2d17321a57" + integrity sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ== + dependencies: + "@rollup/plugin-node-resolve" "^13.0.4" + "@web/dev-server-core" "^0.3.19" + nanocolors "^0.2.1" + parse5 "^6.0.1" + rollup "^2.67.0" + whatwg-url "^11.0.0" + +"@web/dev-server@^0.1.34": + version "0.1.34" + resolved "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz#4a94ea6dcf1c8081b97f5dd6d9790dc7e5c5039d" + integrity sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q== + dependencies: + "@babel/code-frame" "^7.12.11" + "@types/command-line-args" "^5.0.0" + "@web/config-loader" "^0.1.3" + "@web/dev-server-core" "^0.3.19" + "@web/dev-server-rollup" "^0.3.19" + camelcase "^6.2.0" + command-line-args "^5.1.1" + command-line-usage "^6.1.1" + debounce "^1.2.0" + deepmerge "^4.2.2" + ip "^1.1.5" + nanocolors "^0.2.1" + open "^8.0.2" + portfinder "^1.0.28" + +"@web/parse5-utils@^1.2.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz#e2e9e98b31a4ca948309f74891bda8d77399f6bd" + integrity sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg== + dependencies: + "@types/parse5" "^6.0.1" + parse5 "^6.0.1" + +accepts@^1.3.5: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.1, array-back@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + +async@^2.6.4: + version "2.6.4" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@^3.4.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.1: + version "6.1.3" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== + dependencies: + array-back "^4.0.2" + chalk "^2.4.2" + table-layout "^1.0.2" + typical "^5.2.0" + +content-disposition@~0.5.2: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1, debug@^4.3.2: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw== + +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@^2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-module-lexer@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz#f0d8d35b36d13024110000d5e6fadc8eeaeb66b8" + integrity sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +etag@^1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + +fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-symbols@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +http-assert@^1.3.0: + version "1.5.0" + resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f" + integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.8.0" + +http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: + version "1.8.1" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ip@^1.1.5: + version "1.1.8" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-builtin-module@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" + integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== + dependencies: + builtin-modules "^3.3.0" + +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isbinaryfile@^4.0.6: + version "4.0.10" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" + integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== + dependencies: + co "^4.6.0" + koa-compose "^4.1.0" + +koa-etag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz#2c2bb7ae69ca1ac6ced09ba28dcb78523c810414" + integrity sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg== + dependencies: + etag "^1.8.1" + +koa-send@^5.0.0, koa-send@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + resolve-path "^1.4.0" + +koa-static@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" + integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== + dependencies: + debug "^3.1.0" + koa-send "^5.0.0" + +koa@^2.13.0: + version "2.13.4" + resolved "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" + integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "^4.3.2" + delegates "^1.0.0" + depd "^2.0.0" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^2.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash@^4.17.14: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +mkdirp@^0.5.6: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanocolors@^0.2.1: + version "0.2.13" + resolved "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz#dfd1ed0bfab05e9fe540eb6874525f0a1684099b" + integrity sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +on-finished@^2.3.0: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +only@~0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ== + +open@^8.0.2: + version "8.4.0" + resolved "https://registry.npmjs.org/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@^1.3.2: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-is-absolute@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +portfinder@^1.0.28: + version "1.0.32" + resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + +punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w== + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + +resolve@^1.19.0: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rollup@^2.67.0: + version "2.79.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +semver@^7.3.4: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +table-layout@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + +type-is@^1.6.16: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +vary@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +wordwrapjs@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.2.0" + +ws@^7.4.2: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +ylru@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz#0de48017473275a4cbdfc83a1eaf67c01af8a785" + integrity sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==