1
Fork 0
mirror of https://github.com/Steffo99/bluelib.git synced 2024-12-22 11:34:21 +00:00
* Create full implementation of font groups

* Fix typo

mixin → mixins

* Add all possible values of the `font` CSS property to font groups.

* Create full implementation of color groups

* Improve documentation of font groups mixins

* Add overloads for color group mixins

* Bump version to 5.0.0

* Add `bhsl` prefix to color hsl groups

* Add `bfont` prefix to font groups

* Port `royalblue` theme to color groups

* Rename `utils` → `groups`

* Begin skeleton rewrite

* Add missing </editor-fold>

* Reimplement "Page" rules

* Use `rem` instead of `em` as footer margin

* Add bottom page-footer margin

* Re-add chapters

* Delete the apache2 example

* Remove compiled css for now

* Re-add separators

* Re-add images

* Improve docs and remove figures (for now?)

* Implement tables and other things

* Start working on lists

* Update VSCode launch config

* Add initial experimental support for `list-unordered` and `list-ordered`

* WIP: some work on glossaries and tables

* WIP: modifiers

* Make a lot of progress which I'm to lazy to commit properly

* FANCY CLASSIC STYLES

* Start configuring a codespaces environment

* Fix table caption background color

* mess around a bit with backdrops

* Apply some tweaks to tables

* Comment out classic stylesheets

* Add skeleton for inputs and forms

* Mark missing things

* Huge progress but im lost

* Create yarn.lock so intellij stops annoying me about npm

* Complete inputs and misc things

* Complete collapsible details

* Complete text elements

* Complete forms
This commit is contained in:
Steffo 2022-10-11 11:27:55 +02:00 committed by GitHub
parent 9be2551b65
commit 892ae7055b
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
99 changed files with 4494 additions and 10329 deletions

View file

@ -1,14 +1,19 @@
<component name="InspectionProjectProfileManager"> <component name="InspectionProjectProfileManager">
<profile version="1.0"> <profile version="1.0">
<option name="myName" value="Project Default" /> <option name="myName" value="Project Default" />
<inspection_tool class="CheckEmptyScriptTag" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="CssReplaceWithShorthandSafely" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="CssUnknownProperty" enabled="true" level="WARNING" enabled_by_default="true"> <inspection_tool class="CssUnknownProperty" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myCustomPropertiesEnabled" value="true" /> <option name="myCustomPropertiesEnabled" value="true" />
<option name="myIgnoreVendorSpecificProperties" value="false" /> <option name="myIgnoreVendorSpecificProperties" value="false" />
<option name="myCustomPropertiesList"> <option name="myCustomPropertiesList">
<value> <value>
<list size="2"> <list size="5">
<item index="0" class="java.lang.String" itemvalue="text-decoration-thickness" /> <item index="0" class="java.lang.String" itemvalue="text-decoration-thickness" />
<item index="1" class="java.lang.String" itemvalue="scrollbar-color" /> <item index="1" class="java.lang.String" itemvalue="scrollbar-color" />
<item index="2" class="java.lang.String" itemvalue="syntax" />
<item index="3" class="java.lang.String" itemvalue="initial-value" />
<item index="4" class="java.lang.String" itemvalue="inherits" />
</list> </list>
</value> </value>
</option> </option>
@ -56,7 +61,9 @@
<inspection_tool class="RegExpRedundantNestedCharacterClass" enabled="true" level="WEAK WARNING" enabled_by_default="true" /> <inspection_tool class="RegExpRedundantNestedCharacterClass" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpRepeatedSpace" enabled="true" level="WEAK WARNING" enabled_by_default="true" /> <inspection_tool class="RegExpRepeatedSpace" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpUnexpectedAnchor" enabled="true" level="ERROR" enabled_by_default="true" /> <inspection_tool class="RegExpUnexpectedAnchor" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="ShellCheck" enabled="true" level="WARNING" enabled_by_default="true" /> <inspection_tool class="ShellCheck" enabled="true" level="WARNING" enabled_by_default="true">
<shellcheck_settings value="SC2129" />
</inspection_tool>
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false"> <inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" /> <option name="processCode" value="true" />
<option name="processLiterals" value="true" /> <option name="processLiterals" value="true" />

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{less}" />
</component>
</project>

3
.idea/scopes/Source.xml Normal file
View file

@ -0,0 +1,3 @@
<component name="DependencyValidationManager">
<scope name="Source" pattern="file:src//*" />
</component>

9
.vscode/launch.json vendored
View file

@ -6,14 +6,7 @@
"type": "firefox", "type": "firefox",
"request": "launch", "request": "launch",
"reAttach": true, "reAttach": true,
"file": "${workspaceFolder}/index.html", "file": "${workspaceFolder}/examples/index.html",
},
{
"name": "Preview Apache httpd page",
"type": "firefox",
"request": "launch",
"reAttach": true,
"file": "${workspaceFolder}/apache.html",
}, },
] ]
} }

View file

@ -1,62 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<title>Example index of /bluelib/</title>
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="dist/skeleton.apache.css" type="text/css">
<link rel="alternate stylesheet" href="dist/paper.apache.css" title="Sheet of Paper" type="text/css">
<link rel="alternate stylesheet" href="dist/hacker.apache.css" title="Hacker Terminal" type="text/css">
<link rel="alternate stylesheet" href="dist/sophon.apache.css" title="The Sophonity" type="text/css">
<link rel="alternate stylesheet" href="dist/amber.apache.css" title="Gestione Amber" type="text/css">
<link rel="alternate stylesheet" href="dist/pumpkin.apache.css" title="Pumpkin Lantern" type="text/css">
<link rel="stylesheet" href="dist/royalblue.apache.css" title="Royal Blue" type="text/css">
</head>
<body>
<h1 id="indextitle">Example index of /bluelib/</h1>
<table id="indexlist">
<tbody>
<tr class="indexhead">
<th class="indexcolicon"><img src="apache_files/blank.gif" alt="[ICO]"></th>
<th class="indexcolname"><a href="?C=N;O=D">Name</a></th>
<th class="indexcollastmod"><a href="?C=M;O=A">Last modified</a></th>
<th class="indexcolsize"><a href="?C=S;O=A">Size</a></th>
<th class="indexcoldesc"><a href="?C=D;O=A">Description</a></th>
</tr>
<tr class="indexbreakrow">
<th colspan="5">
<hr>
</th>
</tr>
<tr class="even">
<td class="indexcolicon"><img src="apache_files/text.gif" alt="[TXT]"></td>
<td class="indexcolname"><a href="sans.txt">sans.txt</a> </td>
<td class="indexcollastmod">2021-02-21 18:28 </td>
<td class="indexcolsize">3.3K</td>
<td class="indexcoldesc">The wise big brother.</td>
</tr>
<tr class="indexbreakrow">
<th colspan="5">
<hr>
</th>
</tr>
<tr class="odd">
<td class="indexcolicon"><img src="apache_files/text.gif" alt="[TXT]"></td>
<td class="indexcolname"><a href="papyrus.txt">papyrus.txt</a> </td>
<td class="indexcollastmod">2023-04-22 13:22 </td>
<td class="indexcolsize">3.3T</td>
<td class="indexcoldesc">The funny little brother.</td>
</tr>
<tr class="indexbreakrow">
<th colspan="5">
<hr>
</th>
</tr>
</tbody>
</table>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

View file

@ -5,9 +5,12 @@
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/targets" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/targets" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/examples" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/src/normalize" /> <excludeFolder url="file://$MODULE_DIR$/src/normalize" />
<excludeFolder url="file://$MODULE_DIR$/apache_files" /> <excludeFolder url="file://$MODULE_DIR$/apache_files" />
<excludeFolder url="file://$MODULE_DIR$/dist" />
</content> </content>
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="less" level="application" />
</component> </component>
</module> </module>

3
dist/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
# TODO: Remove this before merging
*.css
*.css.map

56
dist/_build.sh vendored
View file

@ -1,40 +1,54 @@
#!/bin/bash #!/bin/bash
# Maybe a Makefile would be better... # Maybe a Makefile would be better...
echo "Finding targets..." echo "Finding mixins..."
targets=$(ls ../src/targets/*.less) mixins=$(ls ../src/mixins/**.less)
echo "Targets:" echo "Mixins:"
echo "$targets" echo "$mixins"
echo echo
echo "Finding themes..." echo "Finding rules..."
themes=$(ls ../src/themes/*.less) rules=$(ls ../src/rules/*.less ../src/rules/**/*.less)
echo "Themes:" echo "Rules:"
echo "$themes" echo "$rules"
echo 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 do
for theme in $themes for rule in $rules
do do
btarget=$(basename $target .less) bselector=$(basename "$selector" ".less")
btheme=$(basename $theme .less) brule=$(basename "$rule" ".less")
# Dot notation is used so .module.css files can be generated # 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 echo "// Mixins" > "$base.less"
@import (less) "../src/utils/mixins.less"; for mixin in $mixins
@import (less) "$target"; do
@import (less) "$theme"; echo "@import (less) \"$mixin\";" >> "$base.less"
EOF 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" lessc "$base.less" "$base.css"
echo
done done
done done

49
dist/amber.apache.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/amber.less";

48
dist/amber.module.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/amber.less";

49
dist/amber.root.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/amber.less";

10
dist/base.module.less vendored Normal file
View file

@ -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";

10
dist/base.root.less vendored Normal file
View file

@ -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";

10
dist/classic.module.less vendored Normal file
View file

@ -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";

10
dist/classic.root.less vendored Normal file
View file

@ -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";

10
dist/colors-royalblue.module.less vendored Normal file
View file

@ -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";

10
dist/colors-royalblue.root.less vendored Normal file
View file

@ -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";

10
dist/fonts-fira-ghpages.module.less vendored Normal file
View file

@ -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";

10
dist/fonts-fira-ghpages.root.less vendored Normal file
View file

@ -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";

10
dist/fun.module.less vendored Normal file
View file

@ -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";

10
dist/fun.root.less vendored Normal file
View file

@ -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";

10
dist/glass.module.less vendored Normal file
View file

@ -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";

10
dist/glass.root.less vendored Normal file
View file

@ -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";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/hacker.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/hacker.less";

49
dist/hacker.root.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/hacker.less";

49
dist/paper.apache.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/paper.less";

48
dist/paper.module.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/paper.less";

49
dist/paper.root.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/paper.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/pumpkin.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/pumpkin.less";

49
dist/pumpkin.root.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/pumpkin.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/royalblue.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/royalblue.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/royalblue.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/royaldawn.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/royaldawn.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/royaldawn.less";

2636
dist/skeleton.apache.css vendored

File diff suppressed because it is too large Load diff

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/skeleton.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/skeleton.less";

2632
dist/skeleton.root.css vendored

File diff suppressed because it is too large Load diff

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/skeleton.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/apache.less";
@import (less) "../src/themes/sophon.less";

View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/module.less";
@import (less) "../src/themes/sophon.less";

49
dist/sophon.root.css vendored
View file

@ -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;
}

View file

@ -1,3 +0,0 @@
@import (less) "../src/utils/mixins.less";
@import (less) "../src/targets/root.less";
@import (less) "../src/themes/sophon.less";

BIN
examples/Space_Default.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

35
examples/index.css Normal file
View file

@ -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;
}

1485
examples/index.html Normal file

File diff suppressed because it is too large Load diff

1123
index.html

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,10 @@
{ {
"name": "@steffo/bluelib", "name": "@steffo/bluelib",
"version": "4.0.2", "version": "5.0.0",
"description": "A stylesheet that supports fast dynamic recoloring via CSS variables", "description": "A stylesheet that supports fast dynamic recoloring via CSS variables",
"scripts": {
"dev": "web-dev-server --watch"
},
"keywords": [ "keywords": [
"bluelib", "bluelib",
"css", "css",
@ -45,5 +48,8 @@
"url": "https://github.com/Steffo99/bluelib.git" "url": "https://github.com/Steffo99/bluelib.git"
}, },
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"private": false "private": false,
"devDependencies": {
"@web/dev-server": "^0.1.34"
}
} }

View file

@ -0,0 +1,3 @@
// IntelliJ does not support yet accessors, so this will make it stop reporting errors without affecting anything else.
@c: 0;

29
src/mixins/fonts.less Normal file
View file

@ -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");
}

51
src/mixins/hsl.less Normal file
View file

@ -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
);
}

891
src/rules/base.less Normal file
View file

@ -0,0 +1,891 @@
/*
* Bluelib Base
* by <me@steffo.eu>
*/
@{bluelib} {
/// ===== Body =====
/// The body element has some rules.
//<editor-fold desc="Rules: Body">
& {
// 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)
}
//</editor-fold>
/// ===== All =====
/// By default, browsers style elements with some weird rules.
/// This is an attempt to correct them, and to implement some Bluelib magic.
//<editor-fold desc="Rules: All">
&, @{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];
}
}
//</editor-fold>
/// ===== Page =====
/// These rules apply to the four page areas: main, aside, header and footer
//<editor-fold desc="Rules: Page">
@{page-footer} {
margin: 1rem 0;
text-align: center;
font-size: x-small;
}
//</editor-fold>
/// ===== Floats =====
/// Floats allow for elements to be automatically positioned in a different position than normal.
//<editor-fold desc="Rules: Floats">
@{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;
}
//</editor-fold>
/// ===== Headers =====
/// Headers are the titles of the page.
//<editor-fold desc="Rules: Headers">
@{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);
}
//</editor-fold>
/// ===== 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.
//<editor-fold desc="Rules: Panels">
// 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;
}
}
//</editor-fold>
/// ===== Chapters =====
/// A chapter is a decorative element separating its children in a certain number of columns.
//<editor-fold desc="Rules: Chapters">
@{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);
}
}
//</editor-fold>
/// ===== Separators =====
/// Separators are horizontal lines separating elements.
//<editor-fold desc="Rules: Separators">
@{separator} {
border-width: 1px;
border-style: dashed;
}
@{separator-light} {
border-style: dotted;
}
@{separator-heavy} {
border-style: solid;
}
//</editor-fold>
/// ===== Images =====
/// Images are changed to block elements and automatically resized to fit their container.
//<editor-fold desc="Rules: Images">
@{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);
}
//</editor-fold>
/// ===== Tables =====
/// Tables are elements whose children are aligned in a grid.
//<editor-fold desc="Rules: Tables">
@{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;
}
}
}
//</editor-fold>
/// ===== Lists =====
/// Lists are marked series of children elements
//<editor-fold desc="Rules: Lists">
@{panel} {
> @{list-unordered}, > @{list-ordered} {
margin-left: 6ex;
}
}
//</editor-fold>
/// ===== Glossaries =====
/// Glossaries are key-value pairs of items
//<editor-fold desc="Rules: Glossaries">
@{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;
}
//</editor-fold>
/// ===== Modifiers =====
//<editor-fold desc="Rules: 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);
}
//</editor-fold>
/// ===== Inputs =====
//<editor-fold desc="Rules: 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: "";
}
}
}
//</editor-fold>
/// ===== Forms =====
//<editor-fold desc="Rules: Inputs">
@{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;
}
}
}
//</editor-fold>
/// ===== Text =====
//<editor-fold desc="Rules: 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;
}
//</editor-fold>
}

165
src/rules/classic.less Normal file
View file

@ -0,0 +1,165 @@
/*
* Bluelib Classic
* by <me@steffo.eu>
*/
@{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];
}
}

View file

@ -0,0 +1,30 @@
/*
* Bluelib Royal Blue Colors
* by <me@steffo.eu>
*/
@{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);
}

View file

@ -0,0 +1,247 @@
/*
* Bluelib Fira Sans Font from GitHub Pages
* by <me@steffo.eu>
*/
/// 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);
}

25
src/rules/fun.less Normal file
View file

@ -0,0 +1,25 @@
/*
* Bluelib Fun Experiments
* by <me@steffo.eu>
*/
//noinspection CssInvalidAtRule
@property --bhsl-current-hue {
syntax: '<angle>';
initial-value: 0deg;
inherits: true;
}
@keyframes rainbow {
0% {
--bhsl-current-hue: 0deg;
}
100% {
--bhsl-current-hue: 360deg;
}
}
@{animation-rainbow} {
animation: 2s linear infinite rainbow;
}

65
src/rules/glass.less Normal file
View file

@ -0,0 +1,65 @@
/*
* Bluelib Glass
* by <me@steffo.eu>
*/
@{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];
}
}
}

82
src/selectors/module.less Normal file
View file

@ -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";

125
src/selectors/root.less Normal file
View file

@ -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";

View file

@ -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";

View file

@ -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";

View file

@ -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";

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

1418
src/themes/skeleton.less vendored

File diff suppressed because it is too large Load diff

View file

@ -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;
}

View file

@ -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");
}

1073
yarn.lock Normal file

File diff suppressed because it is too large Load diff