diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 00000000..bc03da2d
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,3 @@
+>= 0.5%
+last 2 major versions
+not dead
\ No newline at end of file
diff --git a/README.md b/README.md
index 0ce59cab..38459ced 100644
--- a/README.md
+++ b/README.md
@@ -168,7 +168,7 @@ All examples are open-sourced in [picocss/examples](https://github.com/picocss/e
- [`dev`](https://github.com/picocss/pico/tree/dev) branch is open to pull requests.
- Do not edit [`/css`](https://github.com/picocss/pico/tree/master/css) files directly.
-- Edit the source files in [`/scss`](https://github.com/picocss/pico/tree/master/scss), then recompile the [`/css`](https://github.com/picocss/pico/tree/master/css) files with `npm run build`.
+- Edit the source files in [`/scss`](https://github.com/picocss/pico/tree/master/scss), then recompile the [`/css`](https://github.com/picocss/pico/tree/master/css) files with `npm run build:css`.
## Copyright and license
@@ -178,6 +178,7 @@ Licensed under the [MIT License](https://github.com/picocss/pico/blob/master/LIC
Website and docs:
- [TypeIt](https://typeitjs.com/): JavaScript animated typing utility (Licensed [GPL-3.0](https://github.com/alexmacarthur/typeit/blob/master/LICENSE))
+- [Most Visible](https://github.com/andyexeter/most-visible): JavaScript module which returns the most visible element (Licensed [MIT](https://github.com/andyexeter/most-visible/blob/master/LICENSE))
- [Font Awesome](https://fontawesome.com/): Icons (Licensed [CC BY 4.0](https://fontawesome.com/license/free))
Pico Library:
diff --git a/css/pico.slim.css b/css/pico.slim.css
index c2f86301..3e0abecd 100644
--- a/css/pico.slim.css
+++ b/css/pico.slim.css
@@ -202,21 +202,19 @@ kbd {
0 0.125rem 2rem rgba(27, 40, 50, 0.08),
0 0 0 0.0625rem rgba(27, 40, 50, 0.024);
--card-sectionning-background-color: #fbfbfc;
- --modal-overlay-background-color: rgba(213, 220, 226, 0.8);
--progress-background-color: #d5dce2;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(198, 40, 40, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(56, 142, 60, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(198, 40, 40, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
@media only screen and (prefers-color-scheme: dark) {
@@ -297,21 +295,19 @@ kbd {
0 0.125rem 2rem rgba(0, 0, 0, 0.12),
0 0 0 0.0625rem rgba(0, 0, 0, 0.036);
--card-sectionning-background-color: #18232c;
- --modal-overlay-background-color: rgba(36, 51, 62, 0.9);
--progress-background-color: #24333e;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(46, 125, 50, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
}
[data-theme=dark] {
@@ -391,21 +387,19 @@ kbd {
0 0.125rem 2rem rgba(0, 0, 0, 0.12),
0 0 0 0.0625rem rgba(0, 0, 0, 0.036);
--card-sectionning-background-color: #18232c;
- --modal-overlay-background-color: rgba(36, 51, 62, 0.9);
--progress-background-color: #24333e;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(46, 125, 50, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
/**
@@ -427,18 +421,18 @@ kbd {
html {
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
-ms-text-size-adjust: 100%;
- text-rendering: optimizeLegibility;
background-color: var(--background-color);
color: var(--color);
- font-weight: var(--font-weight);
- font-size: var(--font-size);
- line-height: var(--line-height);
font-family: var(--font-family);
+ font-size: var(--font-size);
+ font-weight: var(--font-weight);
+ line-height: var(--line-height);
+ text-rendering: optimizeLegibility;
cursor: default;
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
}
/**
@@ -591,9 +585,9 @@ ul {
margin-top: 0;
margin-bottom: var(--typography-spacing-vertical);
color: var(--color);
- font-style: normal;
- font-weight: var(--font-weight);
font-size: var(--font-size);
+ font-weight: var(--font-weight);
+ font-style: normal;
}
a {
@@ -603,7 +597,7 @@ a {
background-color: var(--background-color);
color: var(--color);
-webkit-text-decoration: var(--text-decoration);
- text-decoration: var(--text-decoration);
+ text-decoration: var(--text-decoration);
}
a:hover, a:active, a:focus {
--color: var(--primary-hover);
@@ -640,9 +634,9 @@ h6 {
margin-top: 0;
margin-bottom: var(--typography-spacing-vertical);
color: var(--color);
- font-weight: var(--font-weight);
- font-size: var(--font-size);
font-family: var(--font-family);
+ font-size: var(--font-size);
+ font-weight: var(--font-weight);
}
h1 {
@@ -736,8 +730,8 @@ hgroup > * {
hgroup > *:last-child {
--color: var(--muted-color);
--font-weight: unset;
- font-size: 1rem;
font-family: unset;
+ font-size: 1rem;
}
p {
@@ -752,10 +746,10 @@ ul,
ol {
padding-right: 0;
padding-left: var(--spacing);
- -webkit-padding-start: var(--spacing);
- padding-inline-start: var(--spacing);
-webkit-padding-end: 0;
- padding-inline-end: 0;
+ padding-inline-end: 0;
+ -webkit-padding-start: var(--spacing);
+ padding-inline-start: var(--spacing);
}
ul li,
ol li {
@@ -779,10 +773,10 @@ blockquote {
padding: var(--spacing);
border-right: none;
border-left: 0.25rem solid var(--blockquote-border-color);
- -webkit-border-start: 0.25rem solid var(--blockquote-border-color);
- border-inline-start: 0.25rem solid var(--blockquote-border-color);
-webkit-border-end: none;
- border-inline-end: none;
+ border-inline-end: none;
+ -webkit-border-start: 0.25rem solid var(--blockquote-border-color);
+ border-inline-start: 0.25rem solid var(--blockquote-border-color);
}
blockquote footer {
margin-top: calc(var(--typography-spacing-vertical) * 0.5);
@@ -904,8 +898,8 @@ a[role=button] {
background-color: var(--background-color);
box-shadow: var(--box-shadow);
color: var(--color);
- font-weight: var(--font-weight);
font-size: 1rem;
+ font-weight: var(--font-weight);
line-height: var(--line-height);
text-align: center;
cursor: pointer;
@@ -1104,10 +1098,10 @@ optgroup,
select,
textarea {
margin: 0;
- font-size: 1rem;
- line-height: var(--line-height);
font-family: inherit;
+ font-size: 1rem;
letter-spacing: inherit;
+ line-height: var(--line-height);
}
input {
@@ -1203,8 +1197,8 @@ input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
select,
textarea {
-webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
+ -moz-appearance: none;
+ appearance: none;
padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
vertical-align: middle;
}
@@ -1260,13 +1254,13 @@ select:not([type=checkbox]):not([type=radio])[aria-invalid],
textarea:not([type=checkbox]):not([type=radio])[aria-invalid] {
padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
padding-left: var(--form-element-spacing-horizontal);
- -webkit-padding-start: var(--form-element-spacing-horizontal);
- padding-inline-start: var(--form-element-spacing-horizontal);
-webkit-padding-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
- padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
+ padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
+ -webkit-padding-start: var(--form-element-spacing-horizontal);
+ padding-inline-start: var(--form-element-spacing-horizontal);
background-position: center right 0.75rem;
- background-size: 1rem auto;
background-repeat: no-repeat;
+ background-size: 1rem auto;
}
input:not([type=checkbox]):not([type=radio])[aria-invalid=false],
select:not([type=checkbox]):not([type=radio])[aria-invalid=false],
@@ -1305,13 +1299,9 @@ textarea[aria-invalid=true]:focus {
--box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color);
}
-[dir=rtl] input:not([type=checkbox]):not([type=radio])[aria-invalid], [dir=rtl] input:not([type=checkbox]):not([type=radio])[aria-invalid=true], [dir=rtl] input:not([type=checkbox]):not([type=radio])[aria-invalid=false],
-[dir=rtl] select:not([type=checkbox]):not([type=radio])[aria-invalid],
-[dir=rtl] select:not([type=checkbox]):not([type=radio])[aria-invalid=true],
-[dir=rtl] select:not([type=checkbox]):not([type=radio])[aria-invalid=false],
-[dir=rtl] textarea:not([type=checkbox]):not([type=radio])[aria-invalid],
-[dir=rtl] textarea:not([type=checkbox]):not([type=radio])[aria-invalid=true],
-[dir=rtl] textarea:not([type=checkbox]):not([type=radio])[aria-invalid=false] {
+[dir=rtl] input[aria-invalid],
+[dir=rtl] select[aria-invalid],
+[dir=rtl] textarea[aria-invalid] {
background-position: center left 0.75rem;
}
@@ -1337,14 +1327,14 @@ select::-ms-expand {
select:not([multiple]):not([size]) {
padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
padding-left: var(--form-element-spacing-horizontal);
- -webkit-padding-start: var(--form-element-spacing-horizontal);
- padding-inline-start: var(--form-element-spacing-horizontal);
-webkit-padding-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
- padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
+ padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
+ -webkit-padding-start: var(--form-element-spacing-horizontal);
+ padding-inline-start: var(--form-element-spacing-horizontal);
background-image: var(--icon-chevron);
background-position: center right 0.75rem;
- background-size: 1rem auto;
background-repeat: no-repeat;
+ background-size: 1rem auto;
}
[dir=rtl] select:not([multiple]):not([size]) {
@@ -1381,8 +1371,8 @@ td {
padding: calc(var(--spacing) / 2) var(--spacing);
border-bottom: var(--border-width) solid var(--table-border-color);
color: var(--color);
- font-weight: var(--font-weight);
font-size: var(--font-size);
+ font-weight: var(--font-weight);
text-align: left;
text-align: start;
}
@@ -1431,5 +1421,3 @@ textarea,
[dir=rtl] {
direction: rtl;
}
-
-/*# sourceMappingURL=pico.slim.css.map */
\ No newline at end of file
diff --git a/css/postcss.config.js b/css/postcss.config.js
deleted file mode 100644
index e2d2f1dd..00000000
--- a/css/postcss.config.js
+++ /dev/null
@@ -1,12 +0,0 @@
-module.exports = {
- map: {
- inline: false,
- annotation: true,
- sourcesContent: true
- },
- plugins: {
- autoprefixer: {
- cascade: false
- }
- }
-}
\ No newline at end of file
diff --git a/css/themes/default.css b/css/themes/default.css
index 15b94c4e..338b3e98 100644
--- a/css/themes/default.css
+++ b/css/themes/default.css
@@ -96,23 +96,6 @@ section {
}
}
-dialog > article {
- --block-spacing-vertical: calc(var(--spacing) * 2);
- --block-spacing-horizontal: var(--spacing);
-}
-@media (min-width: 576px) {
- dialog > article {
- --block-spacing-vertical: calc(var(--spacing) * 2.5);
- --block-spacing-horizontal: calc(var(--spacing) * 1.25);
- }
-}
-@media (min-width: 768px) {
- dialog > article {
- --block-spacing-vertical: calc(var(--spacing) * 3);
- --block-spacing-horizontal: calc(var(--spacing) * 1.5);
- }
-}
-
a {
--text-decoration: none;
}
@@ -266,21 +249,19 @@ kbd {
0 0.125rem 2rem rgba(27, 40, 50, 0.08),
0 0 0 0.0625rem rgba(27, 40, 50, 0.024);
--card-sectionning-background-color: #fbfbfc;
- --modal-overlay-background-color: rgba(213, 220, 226, 0.8);
--progress-background-color: #d5dce2;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(198, 40, 40, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(56, 142, 60, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(198, 40, 40, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
@media only screen and (prefers-color-scheme: dark) {
@@ -361,21 +342,19 @@ kbd {
0 0.125rem 2rem rgba(0, 0, 0, 0.12),
0 0 0 0.0625rem rgba(0, 0, 0, 0.036);
--card-sectionning-background-color: #18232c;
- --modal-overlay-background-color: rgba(36, 51, 62, 0.9);
--progress-background-color: #24333e;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(46, 125, 50, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
}
[data-theme=dark] {
@@ -455,21 +434,17 @@ kbd {
0 0.125rem 2rem rgba(0, 0, 0, 0.12),
0 0 0 0.0625rem rgba(0, 0, 0, 0.036);
--card-sectionning-background-color: #18232c;
- --modal-overlay-background-color: rgba(36, 51, 62, 0.9);
--progress-background-color: #24333e;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(46, 125, 50, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
-
-/*# sourceMappingURL=default.css.map */
\ No newline at end of file
diff --git a/docs/accordions.html b/docs/accordions.html
deleted file mode 100644
index 172901b7..00000000
--- a/docs/accordions.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
Accordions • Pico.css Accordions Toggle sections of content in pure HTML, without JavaScript. Collapsible elements 1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque urna diam, tincidunt nec porta sed, auctor id velit. Etiam venenatis nisl ut orci consequat, vitae tempus quam commodo. Nulla non mauris ipsum. Aliquam eu posuere orci. Nulla convallis lectus rutrum quam hendrerit, in facilisis elit sollicitudin. Mauris pulvinar pulvinar mi, dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta turpis sit amet, congue turpis.
Collapsible elements 2 Vestibulum id elit quis massa interdum sodales. Nunc quis eros vel odio pretium tincidunt nec quis neque. Quisque sed eros non eros ornare elementum. Cras sed libero aliquet, porta dolor quis, dapibus ipsum.
\ No newline at end of file
diff --git a/docs/buttons.html b/docs/buttons.html
deleted file mode 100644
index 50c59c84..00000000
--- a/docs/buttons.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Buttons • Pico.css
\ No newline at end of file
diff --git a/docs/cards.html b/docs/cards.html
deleted file mode 100644
index 77c9c86e..00000000
--- a/docs/cards.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Cards • Pico.css Cards A flexible container with graceful spacings across devices and viewports. I'm a card! <article >I'm a card!</article >
You can use <header >
and footer <footer >
inside <article >
Body <article >
- <header >Header</header >
- Body
- <footer >Footer</footer >
-</article >
\ No newline at end of file
diff --git a/docs/classless.html b/docs/classless.html
deleted file mode 100644
index febe8ab1..00000000
--- a/docs/classless.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Class-less version • Pico.css Class-less version For wild HTML purists! Pico provides a .classless
version (example ).
In this version, <header >
, <main >
, and <footer >
act as containers to define a centered or a fluid viewport.
Usage:
Use the default .classless
version if you need centered viewports:
<link rel ="stylesheet " href ="css/pico.classless.min.css" >
Or use the .fluid.classless
version if you need a fluid container:
<link rel ="stylesheet " href ="css/pico.fluid.classless.min.css" >
These .classless
versions are also available on unpkg CDN :
// Centered viewport
-<link rel ="stylesheet" href ="https://unpkg.com/@picocss/pico@latest/css/pico.classless.min.css" >
-
// Fluid viewport
-<link rel ="stylesheet" href ="https://unpkg.com/@picocss/pico@latest/css/pico.fluid.classless.min.css" >
-
\ No newline at end of file
diff --git a/docs/css/pico.docs.css b/docs/css/pico.docs.css
index 9b9ad88e..fce5f0ca 100644
--- a/docs/css/pico.docs.css
+++ b/docs/css/pico.docs.css
@@ -55,7 +55,7 @@ body > main {
@media (min-width: 992px) {
body > main {
--block-spacing-horizontal: calc(var(--spacing) * 1.75);
- grid-column-gap: calc(var(--block-spacing-horizontal) * 3);
+ grid-column-gap: calc(var(--block-spacing-horizontal) * 4);
display: grid;
grid-template-columns: 200px auto;
}
@@ -70,14 +70,45 @@ body > main div[role=document] {
min-width: 0;
}
+div[role=document] > section::before {
+ display: block;
+ height: calc(2rem + 3.5rem - 0.5rem);
+ margin-top: calc(-2rem - 3.5rem + 0.5rem);
+ content: "";
+}
+@media (min-width: 576px) {
+ div[role=document] > section::before {
+ height: calc(2.5rem + 3.5rem - 0.5rem);
+ height: calc(-2.5rem - 3.5rem + 0.5rem);
+ }
+}
+@media (min-width: 768px) {
+ div[role=document] > section::before {
+ height: calc(3rem + 3.5rem - 0.5rem);
+ margin-top: calc(-3rem - 3.5rem + 0.5rem);
+ }
+}
+@media (min-width: 992px) {
+ div[role=document] > section::before {
+ height: calc(3.5rem + 3.5rem - 0.5rem);
+ margin-top: calc(-3.5rem - 3.5rem + 0.5rem);
+ }
+}
+@media (min-width: 1200px) {
+ div[role=document] > section::before {
+ height: calc(4rem + 3.5rem - 0.5rem);
+ margin-top: calc(-4rem - 3.5rem + 0.5rem);
+ }
+}
+
div[role=document] section a[href*="//"]:not([href*="https://picocss.com"]):not([role])::after {
display: inline-block;
width: 1rem;
height: 1rem;
background-image: var(--icon-external);
background-position: top center;
- background-size: 0.66rem auto;
background-repeat: no-repeat;
+ background-size: 0.66rem auto;
content: "";
}
@@ -90,7 +121,10 @@ svg {
*/
main > aside nav {
width: 100%;
- margin-bottom: calc(var(--block-spacing-vertical) * 2);
+ margin-bottom: var(--block-spacing-vertical);
+}
+main > aside nav h1 {
+ margin-bottom: calc(var(--typography-spacing-vertical) / 2);
}
@media (min-width: 992px) {
main > aside nav {
@@ -101,43 +135,10 @@ main > aside nav {
overflow-x: hidden;
overflow-y: auto;
}
-}
-main > aside nav a#toggle-docs-navigation {
- margin: 0;
- margin-bottom: var(--spacing);
- padding: 0;
- padding-bottom: var(--spacing);
- border-bottom: var(--border-width) solid var(--accordion-border-color);
-}
-main > aside nav a#toggle-docs-navigation svg {
- margin-right: calc(var(--spacing) * 0.5);
- vertical-align: -3px;
-}
-@media (min-width: 992px) {
- main > aside nav a#toggle-docs-navigation {
+ main > aside nav h1 {
display: none;
}
}
-main > aside nav.closed-on-mobile {
- margin-bottom: var(--block-spacing-vertical);
-}
-main > aside nav.closed-on-mobile a#toggle-docs-navigation svg.collapse {
- display: none;
-}
-main > aside nav.closed-on-mobile details {
- display: none;
-}
-@media (min-width: 992px) {
- main > aside nav.closed-on-mobile details {
- display: block;
- }
- main > aside nav.closed-on-mobile > a#toggle-docs-navigation {
- display: none;
- }
-}
-main > aside nav.open a#toggle-docs-navigation svg.expand {
- display: none;
-}
main > aside li,
main > aside summary {
padding-top: 0;
@@ -145,7 +146,7 @@ main > aside summary {
font-size: 16px;
}
main > aside li a {
- padding: 0.375rem 0.5rem;
+ padding: 0.25rem 0.5rem;
}
main > aside li a svg {
vertical-align: middle;
@@ -159,20 +160,18 @@ main > aside a.active:hover {
color: var(--primary);
}
main > aside details {
+ padding-bottom: 0.25rem;
border-bottom: none;
}
main > aside details summary {
color: var(--h1-color);
- font-weight: 300;
font-size: 14px;
+ font-weight: 300;
text-transform: uppercase;
}
main > aside details summary::after {
display: none;
}
-main > aside details[open] > summary {
- margin-bottom: calc(var(--spacing) * 0.75);
-}
main > aside details[open] > summary:not(:focus) {
color: var(--h1-color);
}
@@ -180,24 +179,21 @@ main > aside details[open] > summary:not(:focus) {
/**
* Docs: Documentation
*/
-#themes button.theme-switcher:first-of-type {
- --font-weight: bold;
-}
-#themes button.theme-switcher i {
+#themes button i {
font-style: normal;
}
#customization figure {
display: grid;
- grid-template-rows: repeat(2, 1fr);
grid-template-columns: repeat(9, 1fr);
+ grid-template-rows: repeat(2, 1fr);
margin-bottom: 0;
overflow: hidden;
}
@media (min-width: 576px) {
#customization figure {
- grid-template-rows: 1fr;
grid-template-columns: repeat(18, 1fr);
+ grid-template-rows: 1fr;
border-top-right-radius: var(--border-radius);
border-top-left-radius: var(--border-radius);
}
@@ -220,8 +216,8 @@ main > aside details[open] > summary:not(:focus) {
#customization figure button.picked {
background-image: var(--icon-check);
background-position: center;
- background-size: 0.66rem auto;
background-repeat: no-repeat;
+ background-size: 0.66rem auto;
box-shadow: inset 0 0 1rem 0 rgba(0, 0, 0, 0.25);
}
#customization figure button[data-color=lime].picked, #customization figure button[data-color=yellow].picked, #customization figure button[data-color=amber].picked {
@@ -234,39 +230,39 @@ main > aside details[open] > summary:not(:focus) {
border-color: var(--primary);
}
-#grid {
+#grids {
--grid-spacing-vertical: 1rem;
}
-#grid button {
+#grids button {
display: block;
width: 100%;
margin-bottom: var(--spacing);
}
@media (min-width: 576px) {
- #grid button {
+ #grids button {
display: inline-block;
width: auto;
margin-right: 0.5rem;
}
}
-#grid button svg {
+#grids button svg {
stroke: var(--secondary);
margin-right: 0.5rem;
border: 2px solid currentColor;
border-radius: 1rem;
background: currentColor;
}
-#grid .grid > * {
+#grids .grid > * {
padding: calc(var(--spacing) / 2) 0;
border-radius: var(--border-radius);
background: var(--code-background-color);
font-size: 87.5%;
text-align: center;
}
-#grid details {
+#grids details {
margin-top: calc(var(--typography-spacing-vertical) * 2);
}
-#grid details svg {
+#grids details svg {
vertical-align: bottom;
}
@@ -274,17 +270,9 @@ main > aside details[open] > summary:not(:focus) {
grid-row-gap: 0;
}
-#modal button {
- --font-weight: bold;
-}
-
/**
* Docs: Typography
*/
-h1 {
- margin-top: -0.25em;
-}
-
section > hgroup {
margin-bottom: calc(var(--typography-spacing-vertical) * 2);
}
@@ -309,14 +297,14 @@ article > footer.code {
article pre,
article pre code {
- margin-bottom: 0;
background: transparent;
+ margin-bottom: 0;
}
section > pre {
+ background: var(--article-code-background-color);
margin: var(--block-spacing-vertical) 0;
padding: calc(var(--block-spacing-vertical) / 1.5) var(--block-spacing-horizontal);
- background: var(--article-code-background-color);
box-shadow: var(--card-box-shadow);
}
@@ -359,37 +347,6 @@ section > pre {
content: "Great";
}
-/**
- * Docs: Modal
- */
-dialog.example {
- display: block;
- z-index: inherit;
- position: relative;
- top: inherit;
- right: inherit;
- bottom: inherit;
- left: inherit;
- align-items: inherit;
- justify-content: inherit;
- width: inherit;
- min-width: inherit;
- height: inherit;
- min-height: inherit;
- padding: 0;
- background-color: inherit;
-}
-dialog.example article {
- max-width: inherit;
-}
-dialog.example:not([open]), dialog.example[open=false] {
- display: none;
-}
-
-.dialog-is-open body > button {
- filter: blur(0.125rem);
-}
-
/**
* Docs: Navs
*/
@@ -457,8 +414,8 @@ body > nav ul:first-of-type li:nth-of-type(2) {
border: 0.15rem solid currentColor;
border-radius: 50%;
background: linear-gradient(to right, currentColor 0%, currentColor 50%, transparent 50%);
- content: "";
vertical-align: bottom;
+ content: "";
transition: transform var(--transition);
}
.switcher i {
@@ -466,8 +423,8 @@ body > nav ul:first-of-type li:nth-of-type(2) {
max-width: 0;
padding: 0;
overflow: hidden;
- font-style: normal;
font-size: 0.875rem;
+ font-style: normal;
white-space: nowrap;
}
.switcher:hover, .switcher:focus {
@@ -490,5 +447,3 @@ body > nav ul:first-of-type li:nth-of-type(2) {
right: calc(var(--spacing) + var(--scrollbar-width, 0px));
}
}
-
-/*# sourceMappingURL=pico.docs.css.map */
\ No newline at end of file
diff --git a/docs/customization.html b/docs/customization.html
deleted file mode 100644
index d018a94c..00000000
--- a/docs/customization.html
+++ /dev/null
@@ -1,59 +0,0 @@
-Customization • Pico.css Customization You can customize themes with SCSS or, you can edit the CSS variables. Example: pick a color!
Custom theme There are 2 ways to customize your version of Pico.css:
Overriding CSS variables All Pico's styles and colors are set with CSS custom properties (variables). Just override the CSS variables to customize your version of Pico.
/* Light scheme (Default) */
-/* Can be forced with data-theme="light" */
-[data-theme="light" ] ,
-:root:not([data-theme="dark" ]) {
- --primary : … ;
- --primary-hover : … ;
- --primary-focus : … ;
- --primary-inverse : … ;
-}
-
-/* Dark scheme (Auto) */
-/* Automatically enabled if user has Dark mode enabled */
-@media only screen and (prefers-color-scheme: dark ) {
- :root:not([data-theme="light" ]) {
- --primary : … ;
- --primary-hover : … ;
- --primary-focus : … ;
- --primary-inverse : … ;
- }
-}
-
-/* Dark scheme (Forced) */
-/* Enabled if forced with data-theme="dark" */
-[data-theme="dark" ] {
- --primary : … ;
- --primary-hover : … ;
- --primary-focus : … ;
- --primary-inverse : … ;
-}
-
-/* (Common styles) */
-:root {
- --form-element-active-border-color : var (--primary );
- --form-element-focus-color : var (--primary-focus );
- --switch-color : var (--primary-inverse );
- --switch-checked-background-color : var (--primary );
-}
-
You can find all the CSS variables used in the default theme here: css/themes/default.css
Importing Pico SASS library We recommend customizing Pico by importing SASS source files into your project. This way, you can keep Pico up to date without conflicts since Pico code and your custom code are separated.
Compile the SASS file to CSS to get a custom version of Pico.
/* Custom version */
-
-// Override default variables
-$primary-500 : … ;
-$primary-600 : … ;
-$primary-700 : … ;
-
-// Import full Pico source code
-@import "path/pico" ;
Alternatively, you can create a custom theme and import it into your project with the components you need.
/* Custom version */
-
-// Custom theme
-@import "path/themes/custom" ;
-
-// Import needed components
-@import "path/layout/document" ;
-@import "path/layout/sectioning" ;
-…
-
Compiling a custom SASS version allows you to create a lighter version with only the components that are useful to you. Example here: scss/pico.slim.scss .
\ No newline at end of file
diff --git a/docs/forms.html b/docs/forms.html
deleted file mode 100644
index a8bd5be2..00000000
--- a/docs/forms.html
+++ /dev/null
@@ -1,93 +0,0 @@
-Forms • Pico.css
\ No newline at end of file
diff --git a/docs/grid.html b/docs/grid.html
deleted file mode 100644
index 7984f77b..00000000
--- a/docs/grid.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Grid • Pico.css Grid .grid
enable a minimal grid system with auto-layout columns.Columns intentionally collapses below large devices (992px )
To go further, discover how to merge Pico with the Bootstrap grid system .
More about gridsAs Pico focuses on native HTML elements, we kept this grid system very minimalist.
A complete grid system in flexbox, with all the ordering, offsetting and, breakpoints utilities, can be heavier than the total size of the Pico library. Not really in the Pico spirit.
If you need a quick way to prototyping or build a complex layout, you can look at Flexbox grid layouts . For example, Bootstrap Grid System only or Flexbox Grid .
If you need a light and custom grid, you can look at CSS Grid Generators . For example, CSS Grid Generator , Layoutit! or Griddy .
Alternatively, you can learn about CSS Grid .
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 6000a557..423b3de1 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,4 +1,125 @@
-Documentation • Pico.css Usage Works without package manager or dependencies 🙂! There are 3 ways to get started with pico.css:
Install manually Download Pico and link /css/pico.min.css
in the <head >
of your website.
<link rel ="stylesheet" href ="css/pico.min.css" >
Install from CDN Alternatively, you can use unpkg CDN to link pico.css
<link rel ="stylesheet" href ="https://unpkg.com/@picocss/pico@latest/css/pico.min.css" >
Install with NPM npm install @picocss/pico
Starter HTML template:
<!doctype html>
+
+
+
+
+
+
+
+ Pico.css • Minimal CSS Framework for semantic HTML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation
+
+ Getting started
+
+
+
+ Layout
+
+
+
+ Elements
+
+
+
+ Components
+
+
+
+ Utilities
+
+
+
+ Extend
+
+
+
+
+
+
+
+
+
+
+
+ Usage
+ Work without package manager or dependencies 🙂!
+
+ There are 3 ways to get started with pico.css:
+ Install manually
+ Download Pico and link /css/pico.min.css
in the <head >
of your website.
+ <link rel ="stylesheet" href ="css/pico.min.css" >
+ Install from CDN
+ Alternatively, you can use unpkg CDN to link pico.css
+ <link rel ="stylesheet" href ="https://unpkg.com/@picocss/pico@latest/css/pico.min.css" >
+ Install with NPM
+ npm install @picocss/pico
+ Starter HTML template:
+
+<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
@@ -11,4 +132,1202 @@
<h1 >Hello, world!</h1 >
</main >
</body >
-</html >
\ No newline at end of file
+</html >
+
+
+
+
+
+
+ Themes
+ Pico is shipped with 2 consistent themes: Light & Dark.
+
+ The Light theme is used by default. The Dark theme is automatically enabled if the user has dark mode enabled prefers-color-scheme : dark
+
+ …
+
+ Themes can be forced on document level <html data-theme ="light" >
or on any HTML element <article data-theme ="dark" >
+
+ Light theme
+
+
+
+
+ Dark theme
+
+
+
+
+
+
+
+
+ Customization
+ You can customize themes with SCSS or, you can edit the CSS variables.
+
+ Example: pick a color!
+
+
+ Custom theme
+
+
+
+ There are 2 ways to customize your version of Pico.css:
+ Overriding CSS variables
+ All Pico's styles and colors are set with CSS custom properties (variables). Just override the CSS variables to customize your version of Pico.
+
+/* Light scheme (Default) */
+/* Can be forced with data-theme="light" */
+[data-theme="light" ] ,
+:root:not([data-theme="dark" ]) {
+ --primary : … ;
+ --primary-hover : … ;
+ --primary-focus : … ;
+ --primary-inverse : … ;
+}
+
+/* Dark scheme (Auto) */
+/* Automatically enabled if user has Dark mode enabled */
+@media only screen and (prefers-color-scheme: dark ) {
+ :root:not([data-theme="light" ]) {
+ --primary : … ;
+ --primary-hover : … ;
+ --primary-focus : … ;
+ --primary-inverse : … ;
+ }
+}
+
+/* Dark scheme (Forced) */
+/* Enabled if forced with data-theme="dark" */
+[data-theme="dark" ] {
+ --primary : … ;
+ --primary-hover : … ;
+ --primary-focus : … ;
+ --primary-inverse : … ;
+}
+
+/* (Common styles) */
+:root {
+ --form-element-active-border-color : var (--primary );
+ --form-element-focus-color : var (--primary-focus );
+ --switch-color : var (--primary-inverse );
+ --switch-checked-background-color : var (--primary );
+}
+
+
+ You can find all the CSS variables used in the default theme here: css/themes/default.css
+ Importing Pico SASS library
+ We recommend customizing Pico by importing SASS source files into your project. This way, you can keep Pico up to date without conflicts since Pico code and your custom code are separated.
+ Compile the SASS file to CSS to get a custom version of Pico.
+
+/* Custom version */
+
+// Override default variables
+$primary-500 : … ;
+$primary-600 : … ;
+$primary-700 : … ;
+
+// Import full Pico source code
+@import "path/pico" ;
+
+ Alternatively, you can create a custom theme and import it into your project with the components you need.
+
+/* Custom version */
+
+// Custom theme
+@import "path/themes/custom" ;
+
+// Import needed components
+@import "path/layout/document" ;
+@import "path/layout/sectioning" ;
+…
+
+
+ Compiling a custom SASS version allows you to create a lighter version with only the components that are useful to you. Example here: scss/pico.slim.scss .
+
+
+
+
+
+ Class-less version
+ For wild HTML purists!
+
+ Pico provides a .classless
version (example ).
+ In this version, <header >
, <main >
, and <footer >
act as containers to define a centered or a fluid viewport.
+ Usage:
+ Use the default .classless
version if you need centered viewports:
+ <link rel ="stylesheet " href ="css/pico.classless.min.css" >
+ Or use the .fluid.classless
version if you need a fluid container:
+ <link rel ="stylesheet " href ="css/pico.fluid.classless.min.css" >
+ These .classless
versions are also available on unpkg CDN :
+
+// Centered viewport
+<link rel ="stylesheet" href ="https://unpkg.com/@picocss/pico@latest/css/pico.classless.min.css" >
+
+
+// Fluid viewport
+<link rel ="stylesheet" href ="https://unpkg.com/@picocss/pico@latest/css/pico.fluid.classless.min.css" >
+
+
+
+
+
+
+
+ RTL
+ Support for right-to-left text in Pico.
+
+ To enable RTL in Pico you need to set dir ="rtl"
on the <html >
element.
+
+<!doctype html>
+<html dir ="rtl" lang ="ar" >
+ ...
+</html >
+
+ The RTL feature is still experimental and will probably evolve.
+
+
+
+
+
+ Containers
+
+ .container
enable a centered viewport.
+ .container-fluid
enable a 100%
layout.
+
+
+
+<body >
+ <main class ="container" ></main >
+</body >
+
+ Pico uses the same breakpoints and viewports sizes as Bootstrap .
+
+
+
+
+ Device
+ Extra small
+ Small
+ Medium
+ Large
+ Extra large
+
+
+
+
+ Breakpoint
+ <576px
+ ≥576px
+ ≥768px
+ ≥992px
+ ≥1200px
+
+
+ Viewport
+ 100%
+ 540px
+ 720px
+ 960px
+ 1140px
+
+
+
+
+ <header >
, <main >
and <footer >
as direct childs of <body >
provide a responsive vertical padding
+ <section >
provide a responsive margin-bottom
to separate your sections.
+
+
+
+
+
+ Grids
+ .grid
enable a minimal grid system with auto-layout columns.
+
+
+
+
+
+ Columns intentionally collapses below large devices (992px )
+ To go further, discover how to merge Pico with the Bootstrap grid system .
+
+
+
+
+
+
+
+ More about grids
+
+ As Pico focuses on native HTML elements, we kept this grid system very minimalist.
+ A complete grid system in flexbox, with all the ordering, offsetting and, breakpoints utilities, can be heavier than the total size of the Pico library. Not really in the Pico spirit.
+ If you need a quick way to prototyping or build a complex layout, you can look at Flexbox grid layouts . For example, Bootstrap Grid System only or Flexbox Grid .
+ If you need a light and custom grid, you can look at CSS Grid Generators . For example, CSS Grid Generator , Layoutit! or Griddy .
+ Alternatively, you can learn about CSS Grid .
+
+
+
+
+
+
+
+
+
+ Typography
+ All typographic elements are responsive, allowing text to scale gracefully across devices and viewports.
+
+
+
+
+
+ Device
+ Extra small
+ Small
+ Medium
+ Large
+ Extra large
+
+
+
+
+ Base font
+ 16px
+ 17px
+ 18px
+ 19px
+ 20px
+
+
+ <h1 >
+ 32px
+ 34px
+ 36px
+ 38px
+ 40px
+
+
+ <h2 >
+ 28px
+ 29px
+ 31.5px
+ 33.25px
+ 35px
+
+
+ <h3 >
+ 24px
+ 25.5px
+ 27px
+ 28.5px
+ 30px
+
+
+ <h4 >
+ 20px
+ 21.25px
+ 22.5px
+ 23.75px
+ 25px
+
+
+ <h5 >
+ 18px
+ 19.125px
+ 20.25px
+ 21.375px
+ 22.5px
+
+
+ <h6 >
+ 16px
+ 17px
+ 18px
+ 19px
+ 20px
+
+
+ <small >
+ 14px
+ 14.875px
+ 15.75px
+ 16.625px
+ 27.5px
+
+
+
+
+ Headings:
+
+ Heading 1
+ Heading 2
+ Heading 3
+ Heading 4
+ Heading 5
+ Heading 6
+
+
+ Inside a <hgroup >
all margin-bottom
are collapsed and the :last-child
is muted.
+
+
+ Heading 2
+ Subtitle for heading 2
+
+
+
+ Inline text elements:
+
+
+
+
Abbr. abbr
+
Bold strong
b
+
Italic i
em
cite
+
Deleted del
+
Inserted ins
+
Ctrl + S kbd
+
+
+
Highlighted mark
+
Strikethrough s
+
Small small
+
Text Sub sub
+
Text Sup sup
+
Underline u
+
+
+
+ Links come with .secondary
and .contrast
styles.
+
+ Primary
+ Secondary
+ Contrast
+
+
+ Blockquote:
+
+
+ "Maecenas vehicula metus tellus, vitae congue turpis hendrerit non. Nam at dui sit amet ipsum cursus ornare."
+
+ - Phasellus eget lacinia
+
+
+
+
+<blockquote >
+ "Maecenas vehicula metus tellus, vitae congue turpis hendrerit non. Nam at dui sit amet ipsum cursus ornare."
+ <footer >
+ <cite >- Phasellus eget lacinia</cite >
+ </footer >
+</blockquote >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tables
+ Default styles for tables without .classes
+
+
+
+
+
+ #
+ Heading
+ Heading
+ Heading
+ Heading
+ Heading
+
+
+
+
+ 1
+ Cell
+ Cell
+ Cell
+ Cell
+ Cell
+
+
+ 2
+ Cell
+ Cell
+ Cell
+ Cell
+ Cell
+
+
+ 3
+ Cell
+ Cell
+ Cell
+ Cell
+ Cell
+
+
+
+
+
+<table >
+ <thead >
+ <tr >
+ <th scope ="col" >#</th >
+ <th scope ="col" >Heading</th >
+ <th scope ="col" >Heading</th >
+ <th scope ="col" >Heading</th >
+ </tr >
+ </thead >
+ <tbody >
+ <tr >
+ <th scope ="row" >1</th >
+ <td >Cell</td >
+ <td >Cell</td >
+ <td >Cell</td >
+ </tr >
+ </tbody >
+</table >
+
+ role ="grid"
enable striped rows.
+
+
+
+
+ #
+ Heading
+ Heading
+ Heading
+ Heading
+ Heading
+
+
+
+
+ 1
+ Cell
+ Cell
+ Cell
+ Cell
+ Cell
+
+
+ 2
+ Cell
+ Cell
+ Cell
+ Cell
+ Cell
+
+
+ 3
+ Cell
+ Cell
+ Cell
+ Cell
+ Cell
+
+
+
+
+
+<table role ="grid" >
+ …
+</table >
+
+
+
+
+
+
+ Accordions
+ Toggle sections of content in pure HTML, without JavaScript.
+
+
+
+ Collapsible elements 1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque urna diam, tincidunt nec porta sed, auctor id velit. Etiam venenatis nisl ut orci consequat, vitae tempus quam commodo. Nulla non mauris ipsum. Aliquam eu posuere orci. Nulla convallis lectus rutrum quam hendrerit, in facilisis elit sollicitudin. Mauris pulvinar pulvinar mi, dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta turpis sit amet, congue turpis.
+
+
+ Collapsible elements 2
+
+ Vestibulum id elit quis massa interdum sodales.
+ Nunc quis eros vel odio pretium tincidunt nec quis neque.
+ Quisque sed eros non eros ornare elementum.
+ Cras sed libero aliquet, porta dolor quis, dapibus ipsum.
+
+
+
+
+
+
+
+
+
+ Cards
+ A flexible container with graceful spacings across devices and viewports.
+
+
+ I'm a card!
+
+ <article >I'm a card!</article >
+ You can use <header >
and footer <footer >
inside <article >
+
+
+ Body
+
+
+
+<article >
+ <header >Header</header >
+ Body
+ <footer >Footer</footer >
+</article >
+
+
+
+
+
+
+ Navs
+ The essential navbar component in pure semantic HTML.
+
+
+
+
+
+
+
+
+ <ul >
are automatically distributed horizontally.
+ <li >
are unstyled and inlined.
+
+
+
+
+
+
+
+
+ Inside <aside >
, navs are stacked vertically.
+
+
+
+
+
+
+
+
+
+ Progress
+ Progress bar element in pure HTML, without JavaScript.
+
+
+
+
+
+ You can change a progress bar to an indeterminate state by setting the indeterminate
property to true
+
+
+
+
+
+
+
+
+
+
+ Loading
+ aria-busy ="true"
enable a loading indicator.
+
+
+ Please wait…
+
+
+
+ It can be applied to any block:
+
+ <article aria-busy ="true" ></article >
+ Or any text element:
+
+ Generating link, please wait…
+
+
+
+
+
+
+
+
+
+ We love .classes
+ As a starting point, Pico chose to be as neutral and semantic as possible using very few .classes
+ But of course, .classes
are not a bad practice at all.
+ Feel free to use modifiers .
+
+
<button class ="warning" >Action</button >
+
+ Just try to keep your HTML clean and semantic to keep the Pico spirit.
+
+
<button class ="button-red margin-large padding-medium" >Action</button >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+