diff --git a/docs/accordions.html b/docs/accordions.html
index 720edd1d9..f1e0d8960 100644
--- a/docs/accordions.html
+++ b/docs/accordions.html
@@ -1,4 +1,5 @@
-
Accordions • Pico CSS Accordions Toggle sections of content in pure HTML, without JavaScript. Accordion 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.
Accordion 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. <details >
+Accordions • Pico CSS Accordions Toggle sections of content in pure HTML, without JavaScript. Accordion 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.
Accordion 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. <details >
<summary >Accordion 1</summary >
<p >…</p >
</details >
@@ -25,6 +26,4 @@
<details >
<summary role ="button" class ="contrast" >Accordion 3</summary >
<p >…</p >
-</details >
-
-
\ No newline at end of file
+</details >
\ No newline at end of file
diff --git a/docs/buttons.html b/docs/buttons.html
index 475ce83a5..3b234f0a1 100644
--- a/docs/buttons.html
+++ b/docs/buttons.html
@@ -1,6 +1,7 @@
-Buttons • Pico CSS
\ No newline at end of file
diff --git a/docs/cards.html b/docs/cards.html
index fef1434ce..98c42ac6d 100644
--- a/docs/cards.html
+++ b/docs/cards.html
@@ -1,5 +1,6 @@
-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 >
+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
+</article >
\ No newline at end of file
diff --git a/docs/classless.html b/docs/classless.html
index b70c07c16..af39b14fb 100644
--- a/docs/classless.html
+++ b/docs/classless.html
@@ -1,4 +1,5 @@
-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.
// Containers
+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.
// Containers
body > header ,
body > main ,
body > footer {
@@ -26,4 +27,4 @@
#root > footer {
…
}
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/containers.html b/docs/containers.html
index 31a13dc27..be775ff3f 100644
--- a/docs/containers.html
+++ b/docs/containers.html
@@ -1,3 +1,4 @@
-Containers • Pico CSS Containers .container
enable a centered viewport..container-fluid
enable a 100%
layout.<body >
+Containers • Pico CSS 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 children of <body >
provide a responsive vertical padding
<section >
provides a responsive margin-bottom
to separate your sections.
\ No newline at end of file
+</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 children of <body >
provide a responsive vertical padding
<section >
provides a responsive margin-bottom
to separate your sections.
\ No newline at end of file
diff --git a/docs/customization.html b/docs/customization.html
index 9c83d1929..59c2e9473 100644
--- a/docs/customization.html
+++ b/docs/customization.html
@@ -1,4 +1,6 @@
-Customization • Pico CSS Customization You can customize themes with SCSS or, you can edit the CSS variables. Example: pick a color!
Custom theme // Simplified example
+Customization • Pico CSS Customization You can customize themes with SCSS or, you can edit the CSS variables. Example: pick a color!
Custom theme // Simplified example
:root {
--primary : … ;
}
@@ -56,4 +58,4 @@
@import "@picocss/pico/scss/pico/layout/document" ;
@import "@picocss/pico/scss/pico/layout/sectioning" ;
…
-
Compiling a custom SASS version allows you to create a lighter version with only the components that are useful to you.
\ No newline at end of file
+
Compiling a custom SASS version allows you to create a lighter version with only the components that are useful to you.
\ No newline at end of file
diff --git a/docs/dropdowns.html b/docs/dropdowns.html
index f754fabfb..70803ed07 100644
--- a/docs/dropdowns.html
+++ b/docs/dropdowns.html
@@ -1,4 +1,5 @@
-Dropdowns • Pico CSS Dropdowns Dropdown menus and custom selects without JavaScript. Dropdowns are built with <details role ="list" >
as a wrapper and <summary >
and <ul >
as direct children.
For style consistency with the form elements, dropdowns are styled like a <select> by default.
Dropdown Select Option Another option Something else here <!-- Dropdown -->
+Dropdowns • Pico CSS Dropdowns Dropdown menus and custom selects without JavaScript. Dropdowns are built with <details role ="list" >
as a wrapper and <summary >
and <ul >
as direct children.
For style consistency with the form elements, dropdowns are styled like a <select> by default.
Dropdown Select Option Another option Something else here <!-- Dropdown -->
<details role ="list" >
<summary aria-haspopup ="listbox" >Dropdown</summary >
<ul role ="listbox" >
@@ -97,8 +98,7 @@
</li >
</ul >
</details >
-
-
Dropdowns can be used inside a <nav> with a nested <details role ="list" >
Example with a dropdown as a link:
Dropdowns can be used inside a <nav> with a nested <details role ="list" >
Example with a dropdown as a link:
\ No newline at end of file
+</nav >
\ No newline at end of file
diff --git a/docs/forms.html b/docs/forms.html
index 6f4b14083..4147c77c1 100644
--- a/docs/forms.html
+++ b/docs/forms.html
@@ -1,4 +1,6 @@
-Forms • Pico CSS
\ No newline at end of file
diff --git a/docs/grid.html b/docs/grid.html
index 13bf01850..ee7727388 100644
--- a/docs/grid.html
+++ b/docs/grid.html
@@ -1,6 +1,7 @@
-Grid • Pico CSS Grid .grid
enable a minimal grid system with auto-layout columns.<div class ="grid" >
+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
+</div >
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 5c9482f97..a2e050841 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,4 +1,6 @@
-Documentation • Pico CSS Usage Works without package manager or dependencies 🙂! There are 4 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 jsDelivr CDN to link pico.css
<link rel ="stylesheet" href ="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.min.css" >
Install with NPM npm install @picocss/pico
Install with Composer composer require picocss/pico
Starter HTML template:
<!doctype html>
+Documentation • Pico CSS Usage Works without package manager or dependencies 🙂! There are 4 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 jsDelivr CDN to link pico.css
<link rel ="stylesheet" href ="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.min.css" >
Install with NPM npm install @picocss/pico
Install with Composer composer require picocss/pico
Starter HTML template:
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
@@ -11,4 +13,4 @@
<h1 >Hello, world!</h1 >
</main >
</body >
-</html >
\ No newline at end of file
+</html >
\ No newline at end of file
diff --git a/docs/js/commons.js b/docs/js/commons.js
index 408e1863e..5ec3b2d29 100644
--- a/docs/js/commons.js
+++ b/docs/js/commons.js
@@ -6,16 +6,16 @@
*/
// Imports
-import themeSwitcher from './src/theme-switcher.js';
-import toggleNavigation from './src/toggle-navigation';
+import themeSwitcher from "./src/theme-switcher.js"
+import toggleNavigation from "./src/toggle-navigation"
// Theme switcher
themeSwitcher.addButton({
- tag: 'BUTTON',
- class: 'contrast switcher theme-switcher',
- target: 'body',
-});
-themeSwitcher.init();
+ tag: "BUTTON",
+ class: "contrast switcher theme-switcher",
+ target: "body",
+})
+themeSwitcher.init()
// Toggle navigation
-toggleNavigation.init();
\ No newline at end of file
+toggleNavigation.init()
diff --git a/docs/js/customization.js b/docs/js/customization.js
index 4e95ebc79..6fb36261c 100644
--- a/docs/js/customization.js
+++ b/docs/js/customization.js
@@ -6,9 +6,9 @@
*/
// Imports
-import materialDesignColors from './src/material-design-colors.js';
-import colorPicker from './src/color-picker.js';
+import materialDesignColors from "./src/material-design-colors.js"
+import colorPicker from "./src/color-picker.js"
// Color Picker
-colorPicker.colors = materialDesignColors;
-colorPicker.init();
\ No newline at end of file
+colorPicker.colors = materialDesignColors
+colorPicker.init()
diff --git a/docs/js/grid.js b/docs/js/grid.js
index c170d5b34..30950b2b0 100644
--- a/docs/js/grid.js
+++ b/docs/js/grid.js
@@ -6,33 +6,32 @@
*/
const grid = {
-
// Config
buttons: {
text: {
- add: 'Add column',
- remove: 'Remove column',
+ add: "Add column",
+ remove: "Remove column",
},
- target: '#grid article',
+ target: "#grid article",
},
grid: {
current: 4,
min: 1,
max: 12,
- gridTarget: '#grid .grid',
- codeTarget: '#grid pre code',
+ gridTarget: "#grid .grid",
+ codeTarget: "#grid pre code",
},
// Init
init() {
- this.addButtons();
- this.generateGrid();
+ this.addButtons()
+ this.generateGrid()
},
// Add buttons
addButtons() {
// Insert buttons
- let buttons = document.createElement('P');
+ let buttons = document.createElement("P")
buttons.innerHTML = `
@@ -47,54 +46,62 @@ const grid = {
${this.buttons.text.remove}
- `;
- document.querySelector(this.buttons.target).before(buttons);
+ `
+ document.querySelector(this.buttons.target).before(buttons)
// Add button listener
- document.querySelector('#grid button.add').addEventListener('click', () => {
- this.addColumn();
- }, false);
+ document.querySelector("#grid button.add").addEventListener(
+ "click",
+ () => {
+ this.addColumn()
+ },
+ false
+ )
// Remove button listener
- document.querySelector('#grid button.remove').addEventListener('click', () => {
- this.removeColumn();
- }, false);
+ document.querySelector("#grid button.remove").addEventListener(
+ "click",
+ () => {
+ this.removeColumn()
+ },
+ false
+ )
},
// Generate grid
generateGrid() {
// Config
- let htmlInner = '';
- let codeInner = '<div class ="grid" >\n';
+ let htmlInner = ""
+ let codeInner = '<div class ="grid" >\n'
// Build
for (let col = 0; col < this.grid.current; col++) {
- htmlInner += '' + (col + 1) + '
';
- codeInner += ' <div >' + (col + 1) + '</div >\n';
+ htmlInner += "" + (col + 1) + "
"
+ codeInner += " <div >" + (col + 1) + "</div >\n"
}
// Display
- codeInner += '</div >';
- document.querySelector(this.grid.gridTarget).innerHTML = htmlInner;
- document.querySelector(this.grid.codeTarget).innerHTML = codeInner;
+ codeInner += "</div >"
+ document.querySelector(this.grid.gridTarget).innerHTML = htmlInner
+ document.querySelector(this.grid.codeTarget).innerHTML = codeInner
},
// Add column
addColumn() {
if (this.grid.current < this.grid.max) {
- this.grid.current++;
- this.generateGrid();
+ this.grid.current++
+ this.generateGrid()
}
},
// Remove column
removeColumn() {
if (this.grid.current > this.grid.min) {
- this.grid.current--;
- this.generateGrid();
+ this.grid.current--
+ this.generateGrid()
}
},
-};
+}
// Init
-grid.init();
\ No newline at end of file
+grid.init()
diff --git a/docs/js/modal.js b/docs/js/modal.js
index beb98a261..13e546512 100644
--- a/docs/js/modal.js
+++ b/docs/js/modal.js
@@ -6,90 +6,96 @@
*/
// Config
-const isOpenClass = 'modal-is-open';
-const openingClass = 'modal-is-opening';
-const closingClass = 'modal-is-closing';
-const animationDuration = 400; // ms
-let visibleModal = null;
-
+const isOpenClass = "modal-is-open"
+const openingClass = "modal-is-opening"
+const closingClass = "modal-is-closing"
+const animationDuration = 400 // ms
+let visibleModal = null
// Toggle modal
const toggleModal = event => {
- event.preventDefault();
- const modal = document.getElementById(event.currentTarget.getAttribute('data-target'));
- (typeof(modal) != 'undefined' && modal != null)
- && isModalOpen(modal) ? closeModal(modal) : openModal(modal)
+ event.preventDefault()
+ const modal = document.getElementById(
+ event.currentTarget.getAttribute("data-target")
+ )
+ typeof modal != "undefined" && modal != null && isModalOpen(modal)
+ ? closeModal(modal)
+ : openModal(modal)
}
// Is modal open
const isModalOpen = modal => {
- return modal.hasAttribute('open') && modal.getAttribute('open') != 'false' ? true : false;
+ return modal.hasAttribute("open") && modal.getAttribute("open") != "false"
+ ? true
+ : false
}
// Open modal
const openModal = modal => {
if (isScrollbarVisible()) {
- document.documentElement.style.setProperty('--scrollbar-width', `${getScrollbarWidth()}px`);
+ document.documentElement.style.setProperty(
+ "--scrollbar-width",
+ `${getScrollbarWidth()}px`
+ )
}
- document.documentElement.classList.add(isOpenClass, openingClass);
+ document.documentElement.classList.add(isOpenClass, openingClass)
setTimeout(() => {
- visibleModal = modal;
- document.documentElement.classList.remove(openingClass);
- }, animationDuration);
- modal.setAttribute('open', true);
+ visibleModal = modal
+ document.documentElement.classList.remove(openingClass)
+ }, animationDuration)
+ modal.setAttribute("open", true)
}
// Close modal
const closeModal = modal => {
- visibleModal = null;
- document.documentElement.classList.add(closingClass);
+ visibleModal = null
+ document.documentElement.classList.add(closingClass)
setTimeout(() => {
- document.documentElement.classList.remove(closingClass, isOpenClass);
- document.documentElement.style.removeProperty('--scrollbar-width');
- modal.removeAttribute('open');
- }, animationDuration);
+ document.documentElement.classList.remove(closingClass, isOpenClass)
+ document.documentElement.style.removeProperty("--scrollbar-width")
+ modal.removeAttribute("open")
+ }, animationDuration)
}
// Close with a click outside
-document.addEventListener('click', event => {
+document.addEventListener("click", event => {
if (visibleModal != null) {
- const modalContent = visibleModal.querySelector('article');
- const isClickInside = modalContent.contains(event.target);
- !isClickInside && closeModal(visibleModal);
+ const modalContent = visibleModal.querySelector("article")
+ const isClickInside = modalContent.contains(event.target)
+ !isClickInside && closeModal(visibleModal)
}
-});
+})
// Close with Esc key
-document.addEventListener('keydown', event => {
- if (event.key === 'Escape' && visibleModal != null) {
- closeModal(visibleModal);
+document.addEventListener("keydown", event => {
+ if (event.key === "Escape" && visibleModal != null) {
+ closeModal(visibleModal)
}
-});
+})
// Get scrollbar width
const getScrollbarWidth = () => {
-
// Creating invisible container
- const outer = document.createElement('div');
- outer.style.visibility = 'hidden';
- outer.style.overflow = 'scroll'; // forcing scrollbar to appear
- outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
- document.body.appendChild(outer);
+ const outer = document.createElement("div")
+ outer.style.visibility = "hidden"
+ outer.style.overflow = "scroll" // forcing scrollbar to appear
+ outer.style.msOverflowStyle = "scrollbar" // needed for WinJS apps
+ document.body.appendChild(outer)
// Creating inner element and placing it in the container
- const inner = document.createElement('div');
- outer.appendChild(inner);
+ const inner = document.createElement("div")
+ outer.appendChild(inner)
// Calculating difference between container's full width and the child width
- const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);
+ const scrollbarWidth = outer.offsetWidth - inner.offsetWidth
// Removing temporary elements from the DOM
- outer.parentNode.removeChild(outer);
+ outer.parentNode.removeChild(outer)
- return scrollbarWidth;
+ return scrollbarWidth
}
// Is scrollbar visible
const isScrollbarVisible = () => {
- return document.body.scrollHeight > screen.height;
+ return document.body.scrollHeight > screen.height
}
diff --git a/docs/js/src/color-picker.js b/docs/js/src/color-picker.js
index 4a8fb8674..17db02f7d 100644
--- a/docs/js/src/color-picker.js
+++ b/docs/js/src/color-picker.js
@@ -6,107 +6,112 @@
*/
export const colorPicker = {
-
// Config
colors: null,
buttonsTarget: '#customization article[data-theme="generated"]',
- selectorButton: '#customization button[data-color]',
- selectorSection: '#customization',
+ selectorButton: "#customization button[data-color]",
+ selectorSection: "#customization",
buttons: null,
generatedStyles: null,
// Init
init() {
- this.generateButtons();
- this.setActiveButton('pink');
- this.generateTheme('pink');
+ this.generateButtons()
+ this.setActiveButton("pink")
+ this.generateTheme("pink")
},
// Generate Buttons
generateButtons() {
// Init
- let innerButtons = '';
- let innerStyles = '';
+ let innerButtons = ""
+ let innerStyles = ""
// Loop colors
for (const color in this.colors) {
// Buttons
- innerButtons += ` `;
+ innerButtons += ` `
// Styles
innerStyles += `
button[data-color="${color}"] {
- background-color: ${this.colors[color]['600']};
+ background-color: ${this.colors[color]["600"]};
}
[data-theme="light"] button[data-color="${color}"]:hover,
[data-theme="light"] button[data-color="${color}"]:active,
[data-theme="light"] button[data-color="${color}"]:focus {
- background-color: ${this.colors[color]['700']}; '
+ background-color: ${this.colors[color]["700"]}; '
}
[data-theme="dark"] button[data-color="${color}"]:hover,
[data-theme="dark"] button[data-color="${color}"]:active,
[data-theme="dark"] button[data-color="${color}"]:focus {
- background-color: ${this.colors[color]['500']};
- }`;
+ background-color: ${this.colors[color]["500"]};
+ }`
}
// Insert buttons
- let containerButtons = document.createElement('FIGURE');
- containerButtons.innerHTML = innerButtons;
- document.querySelector(this.buttonsTarget).before(containerButtons);
+ let containerButtons = document.createElement("FIGURE")
+ containerButtons.innerHTML = innerButtons
+ document.querySelector(this.buttonsTarget).before(containerButtons)
// Buttons listeners
- this.buttons = document.querySelectorAll(this.selectorButton);
- this.buttons.forEach( button => {
- button.addEventListener('click', event => {
- let color = event.target.getAttribute('data-color');
- this.setActiveButton(color);
- this.generateTheme(color);
- }, false);
- });
+ this.buttons = document.querySelectorAll(this.selectorButton)
+ this.buttons.forEach(button => {
+ button.addEventListener(
+ "click",
+ event => {
+ let color = event.target.getAttribute("data-color")
+ this.setActiveButton(color)
+ this.generateTheme(color)
+ },
+ false
+ )
+ })
// Insert CSS Styles
- let containerStyles = document.createElement('STYLE');
- containerStyles.setAttribute('title', 'color-picker');
- this.generatedStyles = this.minifyCSS(innerStyles);
- containerStyles.innerHTML = this.generatedStyles;
- document.querySelector('head').appendChild(containerStyles);
+ let containerStyles = document.createElement("STYLE")
+ containerStyles.setAttribute("title", "color-picker")
+ this.generatedStyles = this.minifyCSS(innerStyles)
+ containerStyles.innerHTML = this.generatedStyles
+ document.querySelector("head").appendChild(containerStyles)
},
// Set active button
setActiveButton(color) {
// Remove all active states
- this.buttons.forEach( button => {
- button.removeAttribute('class');
- });
+ this.buttons.forEach(button => {
+ button.removeAttribute("class")
+ })
// Set active state
- let buttonPicked = document.querySelector(this.selectorButton + '[data-color="' + color + '"]');
- buttonPicked.setAttribute('class', 'picked');
+ let buttonPicked = document.querySelector(
+ this.selectorButton + '[data-color="' + color + '"]'
+ )
+ buttonPicked.setAttribute("class", "picked")
},
// Set active button
generateTheme(color) {
- let name = color;
- let data = this.colors[color];
+ let name = color
+ let data = this.colors[color]
// 1. Update name and colors in demo code
let swaps = {
- '.name': name.charAt(0).toUpperCase() + name.substring(1) + ' ',
- '.c500': data[500],
- '.c600': data[600],
- '.c700': data[700],
- '.c600-outline-light': this.hexToRgbA(data[600], 0.125),
- '.c600-outline-dark': this.hexToRgbA(data[600], 0.25),
- '.inverse': data['inverse'],
- };
-
- Object.keys(swaps).forEach( swap => {
- let targets = document.querySelectorAll(this.selectorSection + ' ' + swap);
- targets.forEach( target => {
- target.innerHTML = swaps[swap];
- });
- });
+ ".name": name.charAt(0).toUpperCase() + name.substring(1) + " ",
+ ".c500": data[500],
+ ".c600": data[600],
+ ".c700": data[700],
+ ".c600-outline-light": this.hexToRgbA(data[600], 0.125),
+ ".c600-outline-dark": this.hexToRgbA(data[600], 0.25),
+ ".inverse": data["inverse"],
+ }
+
+ Object.keys(swaps).forEach(swap => {
+ let targets = document.querySelectorAll(this.selectorSection + " " + swap)
+ targets.forEach(target => {
+ target.innerHTML = swaps[swap]
+ })
+ })
// 2. Update CSS Styles
const innerStyles = `
@@ -115,7 +120,7 @@ export const colorPicker = {
--primary: ${data[600]};
--primary-hover: ${data[700]};
--primary-focus: ${this.hexToRgbA(data[600], 0.125)};
- --primary-inverse: ${data['inverse']};
+ --primary-inverse: ${data["inverse"]};
}
@media only screen and (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) [data-theme="generated"] {
@@ -123,7 +128,7 @@ export const colorPicker = {
--primary: ${data[600]};
--primary-hover: ${data[500]};
--primary-focus: ${this.hexToRgbA(data[600], 0.25)};
- --primary-inverse: ${data['inverse']};
+ --primary-inverse: ${data["inverse"]};
}
}
[data-theme="dark"] [data-theme="generated"] {
@@ -131,43 +136,43 @@ export const colorPicker = {
--primary: ${data[600]};
--primary-hover: ${data[500]};
--primary-focus: ${this.hexToRgbA(data[600], 0.25)};
- --primary-inverse: ${data['inverse']};
+ --primary-inverse: ${data["inverse"]};
}
[data-theme="generated"] {
--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);
- }`;
+ }`
document.querySelector('style[title="color-picker"]').innerHTML =
- this.generatedStyles + this.minifyCSS(innerStyles);
+ this.generatedStyles + this.minifyCSS(innerStyles)
},
// Minify CSS
minifyCSS(css) {
- return css.replace(/^ +/gm, '');
+ return css.replace(/^ +/gm, "")
},
// Hexadecimal to Rgba
hexToRgbA(hex, alpha) {
- let c;
+ let c
if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {
- c = hex.substring(1).split('');
+ c = hex.substring(1).split("")
if (c.length == 3) {
- c = [c[0], c[0], c[1], c[1], c[2], c[2]];
+ c = [c[0], c[0], c[1], c[1], c[2], c[2]]
}
- c = '0x' + c.join('');
+ c = "0x" + c.join("")
return (
- 'rgba(' +
- [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(', ') +
- ', ' +
+ "rgba(" +
+ [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(", ") +
+ ", " +
alpha +
- ')'
- );
+ ")"
+ )
}
- throw new Error('Bad Hex');
+ throw new Error("Bad Hex")
},
-};
+}
-export default colorPicker;
+export default colorPicker
diff --git a/docs/js/src/material-design-colors.js b/docs/js/src/material-design-colors.js
index 7cb8e503f..40a456219 100644
--- a/docs/js/src/material-design-colors.js
+++ b/docs/js/src/material-design-colors.js
@@ -1,303 +1,303 @@
// Source: https://material.io/design/color/the-color-system.html
export const materialDesignColors = {
red: {
- 50: '#ffebee',
- 100: '#ffcdd2',
- 200: '#ef9a9a',
- 300: '#e57373',
- 400: '#ef5350',
- 500: '#f44336',
- 600: '#e53935',
- 700: '#d32f2f',
- 800: '#c62828',
- 900: '#b71c1c',
- a100: '#ff8a80',
- a200: '#ff5252',
- a400: '#ff1744',
- a700: '#d50000',
- inverse: '#FFF',
+ 50: "#ffebee",
+ 100: "#ffcdd2",
+ 200: "#ef9a9a",
+ 300: "#e57373",
+ 400: "#ef5350",
+ 500: "#f44336",
+ 600: "#e53935",
+ 700: "#d32f2f",
+ 800: "#c62828",
+ 900: "#b71c1c",
+ a100: "#ff8a80",
+ a200: "#ff5252",
+ a400: "#ff1744",
+ a700: "#d50000",
+ inverse: "#FFF",
},
pink: {
- 50: '#fce4ec',
- 100: '#f8bbd0',
- 200: '#f48fb1',
- 300: '#f06292',
- 400: '#ec407a',
- 500: '#e91e63',
- 600: '#d81b60',
- 700: '#c2185b',
- 800: '#ad1457',
- 900: '#880e4f',
- a100: '#ff80ab',
- a200: '#ff4081',
- a400: '#f50057',
- a700: '#c51162',
- inverse: '#FFF',
+ 50: "#fce4ec",
+ 100: "#f8bbd0",
+ 200: "#f48fb1",
+ 300: "#f06292",
+ 400: "#ec407a",
+ 500: "#e91e63",
+ 600: "#d81b60",
+ 700: "#c2185b",
+ 800: "#ad1457",
+ 900: "#880e4f",
+ a100: "#ff80ab",
+ a200: "#ff4081",
+ a400: "#f50057",
+ a700: "#c51162",
+ inverse: "#FFF",
},
purple: {
- 50: '#f3e5f5',
- 100: '#e1bee7',
- 200: '#ce93d8',
- 300: '#ba68c8',
- 400: '#ab47bc',
- 500: '#9c27b0',
- 600: '#8e24aa',
- 700: '#7b1fa2',
- 800: '#6a1b9a',
- 900: '#4a148c',
- a100: '#ea80fc',
- a200: '#e040fb',
- a400: '#d500f9',
- a700: '#aa00ff',
- inverse: '#FFF',
+ 50: "#f3e5f5",
+ 100: "#e1bee7",
+ 200: "#ce93d8",
+ 300: "#ba68c8",
+ 400: "#ab47bc",
+ 500: "#9c27b0",
+ 600: "#8e24aa",
+ 700: "#7b1fa2",
+ 800: "#6a1b9a",
+ 900: "#4a148c",
+ a100: "#ea80fc",
+ a200: "#e040fb",
+ a400: "#d500f9",
+ a700: "#aa00ff",
+ inverse: "#FFF",
},
- 'deep-purple': {
- 50: '#ede7f6',
- 100: '#d1c4e9',
- 200: '#b39ddb',
- 300: '#9575cd',
- 400: '#7e57c2',
- 500: '#673ab7',
- 600: '#5e35b1',
- 700: '#512da8',
- 800: '#4527a0',
- 900: '#311b92',
- a100: '#b388ff',
- a200: '#7c4dff',
- a400: '#651fff',
- a700: '#6200ea',
- inverse: '#FFF',
+ "deep-purple": {
+ 50: "#ede7f6",
+ 100: "#d1c4e9",
+ 200: "#b39ddb",
+ 300: "#9575cd",
+ 400: "#7e57c2",
+ 500: "#673ab7",
+ 600: "#5e35b1",
+ 700: "#512da8",
+ 800: "#4527a0",
+ 900: "#311b92",
+ a100: "#b388ff",
+ a200: "#7c4dff",
+ a400: "#651fff",
+ a700: "#6200ea",
+ inverse: "#FFF",
},
indigo: {
- 50: '#e8eaf6',
- 100: '#c5cae9',
- 200: '#9fa8da',
- 300: '#7986cb',
- 400: '#5c6bc0',
- 500: '#3f51b5',
- 600: '#3949ab',
- 700: '#303f9f',
- 800: '#283593',
- 900: '#1a237e',
- a100: '#8c9eff',
- a200: '#536dfe',
- a400: '#3d5afe',
- a700: '#304ffe',
- inverse: '#FFF',
+ 50: "#e8eaf6",
+ 100: "#c5cae9",
+ 200: "#9fa8da",
+ 300: "#7986cb",
+ 400: "#5c6bc0",
+ 500: "#3f51b5",
+ 600: "#3949ab",
+ 700: "#303f9f",
+ 800: "#283593",
+ 900: "#1a237e",
+ a100: "#8c9eff",
+ a200: "#536dfe",
+ a400: "#3d5afe",
+ a700: "#304ffe",
+ inverse: "#FFF",
},
blue: {
- 50: '#e3f2fd',
- 100: '#bbdefb',
- 200: '#90caf9',
- 300: '#64b5f6',
- 400: '#42a5f5',
- 500: '#2196f3',
- 600: '#1e88e5',
- 700: '#1976d2',
- 800: '#1565c0',
- 900: '#0d47a1',
- a100: '#82b1ff',
- a200: '#448aff',
- a400: '#2979ff',
- a700: '#2962ff',
- inverse: '#FFF',
+ 50: "#e3f2fd",
+ 100: "#bbdefb",
+ 200: "#90caf9",
+ 300: "#64b5f6",
+ 400: "#42a5f5",
+ 500: "#2196f3",
+ 600: "#1e88e5",
+ 700: "#1976d2",
+ 800: "#1565c0",
+ 900: "#0d47a1",
+ a100: "#82b1ff",
+ a200: "#448aff",
+ a400: "#2979ff",
+ a700: "#2962ff",
+ inverse: "#FFF",
},
- 'light-blue': {
- 50: '#e1f5fe',
- 100: '#b3e5fc',
- 200: '#81d4fa',
- 300: '#4fc3f7',
- 400: '#29b6f6',
- 500: '#03a9f4',
- 600: '#039be5',
- 700: '#0288d1',
- 800: '#0277bd',
- 900: '#01579b',
- a100: '#80d8ff',
- a200: '#40c4ff',
- a400: '#00b0ff',
- a700: '#0091ea',
- inverse: '#FFF',
+ "light-blue": {
+ 50: "#e1f5fe",
+ 100: "#b3e5fc",
+ 200: "#81d4fa",
+ 300: "#4fc3f7",
+ 400: "#29b6f6",
+ 500: "#03a9f4",
+ 600: "#039be5",
+ 700: "#0288d1",
+ 800: "#0277bd",
+ 900: "#01579b",
+ a100: "#80d8ff",
+ a200: "#40c4ff",
+ a400: "#00b0ff",
+ a700: "#0091ea",
+ inverse: "#FFF",
},
cyan: {
- 50: '#e0f7fa',
- 100: '#b2ebf2',
- 200: '#80deea',
- 300: '#4dd0e1',
- 400: '#26c6da',
- 500: '#00bcd4',
- 600: '#00acc1',
- 700: '#0097a7',
- 800: '#00838f',
- 900: '#006064',
- a100: '#84ffff',
- a200: '#18ffff',
- a400: '#00e5ff',
- a700: '#00b8d4',
- inverse: '#FFF',
+ 50: "#e0f7fa",
+ 100: "#b2ebf2",
+ 200: "#80deea",
+ 300: "#4dd0e1",
+ 400: "#26c6da",
+ 500: "#00bcd4",
+ 600: "#00acc1",
+ 700: "#0097a7",
+ 800: "#00838f",
+ 900: "#006064",
+ a100: "#84ffff",
+ a200: "#18ffff",
+ a400: "#00e5ff",
+ a700: "#00b8d4",
+ inverse: "#FFF",
},
teal: {
- 50: '#e0f2f1',
- 100: '#b2dfdb',
- 200: '#80cbc4',
- 300: '#4db6ac',
- 400: '#26a69a',
- 500: '#009688',
- 600: '#00897b',
- 700: '#00796b',
- 800: '#00695c',
- 900: '#004d40',
- a100: '#a7ffeb',
- a200: '#64ffda',
- a400: '#1de9b6',
- a700: '#00bfa5',
- inverse: '#FFF',
+ 50: "#e0f2f1",
+ 100: "#b2dfdb",
+ 200: "#80cbc4",
+ 300: "#4db6ac",
+ 400: "#26a69a",
+ 500: "#009688",
+ 600: "#00897b",
+ 700: "#00796b",
+ 800: "#00695c",
+ 900: "#004d40",
+ a100: "#a7ffeb",
+ a200: "#64ffda",
+ a400: "#1de9b6",
+ a700: "#00bfa5",
+ inverse: "#FFF",
},
green: {
- 50: '#e8f5e9',
- 100: '#c8e6c9',
- 200: '#a5d6a7',
- 300: '#81c784',
- 400: '#66bb6a',
- 500: '#4caf50',
- 600: '#43a047',
- 700: '#388e3c',
- 800: '#2e7d32',
- 900: '#1b5e20',
- a100: '#b9f6ca',
- a200: '#69f0ae',
- a400: '#00e676',
- a700: '#00c853',
- inverse: '#FFF',
+ 50: "#e8f5e9",
+ 100: "#c8e6c9",
+ 200: "#a5d6a7",
+ 300: "#81c784",
+ 400: "#66bb6a",
+ 500: "#4caf50",
+ 600: "#43a047",
+ 700: "#388e3c",
+ 800: "#2e7d32",
+ 900: "#1b5e20",
+ a100: "#b9f6ca",
+ a200: "#69f0ae",
+ a400: "#00e676",
+ a700: "#00c853",
+ inverse: "#FFF",
},
- 'light-green': {
- 50: '#f1f8e9',
- 100: '#dcedc8',
- 200: '#c5e1a5',
- 300: '#aed581',
- 400: '#9ccc65',
- 500: '#8bc34a',
- 600: '#7cb342',
- 700: '#689f38',
- 800: '#558b2f',
- 900: '#33691e',
- a100: '#ccff90',
- a200: '#b2ff59',
- a400: '#76ff03',
- a700: '#64dd17',
- inverse: '#FFF',
+ "light-green": {
+ 50: "#f1f8e9",
+ 100: "#dcedc8",
+ 200: "#c5e1a5",
+ 300: "#aed581",
+ 400: "#9ccc65",
+ 500: "#8bc34a",
+ 600: "#7cb342",
+ 700: "#689f38",
+ 800: "#558b2f",
+ 900: "#33691e",
+ a100: "#ccff90",
+ a200: "#b2ff59",
+ a400: "#76ff03",
+ a700: "#64dd17",
+ inverse: "#FFF",
},
lime: {
- 50: '#f9fbe7',
- 100: '#f0f4c3',
- 200: '#e6ee9c',
- 300: '#dce775',
- 400: '#d4e157',
- 500: '#cddc39',
- 600: '#c0ca33',
- 700: '#afb42b',
- 800: '#9e9d24',
- 900: '#827717',
- a100: '#f4ff81',
- a200: '#eeff41',
- a400: '#c6ff00',
- a700: '#aeea00',
- inverse: 'rgba(0, 0, 0, 0.75)',
+ 50: "#f9fbe7",
+ 100: "#f0f4c3",
+ 200: "#e6ee9c",
+ 300: "#dce775",
+ 400: "#d4e157",
+ 500: "#cddc39",
+ 600: "#c0ca33",
+ 700: "#afb42b",
+ 800: "#9e9d24",
+ 900: "#827717",
+ a100: "#f4ff81",
+ a200: "#eeff41",
+ a400: "#c6ff00",
+ a700: "#aeea00",
+ inverse: "rgba(0, 0, 0, 0.75)",
},
yellow: {
- 50: '#fffde7',
- 100: '#fff9c4',
- 200: '#fff59d',
- 300: '#fff176',
- 400: '#ffee58',
- 500: '#ffeb3b',
- 600: '#fdd835',
- 700: '#fbc02d',
- 800: '#f9a825',
- 900: '#f57f17',
- a100: '#ffff8d',
- a200: '#ffff00',
- a400: '#ffea00',
- a700: '#ffd600',
- inverse: 'rgba(0, 0, 0, 0.75)',
+ 50: "#fffde7",
+ 100: "#fff9c4",
+ 200: "#fff59d",
+ 300: "#fff176",
+ 400: "#ffee58",
+ 500: "#ffeb3b",
+ 600: "#fdd835",
+ 700: "#fbc02d",
+ 800: "#f9a825",
+ 900: "#f57f17",
+ a100: "#ffff8d",
+ a200: "#ffff00",
+ a400: "#ffea00",
+ a700: "#ffd600",
+ inverse: "rgba(0, 0, 0, 0.75)",
},
amber: {
- 50: '#fff8e1',
- 100: '#ffecb3',
- 200: '#ffe082',
- 300: '#ffd54f',
- 400: '#ffca28',
- 500: '#ffc107',
- 600: '#ffb300',
- 700: '#ffa000',
- 800: '#ff8f00',
- 900: '#ff6f00',
- a100: '#ffe57f',
- a200: '#ffd740',
- a400: '#ffc400',
- a700: '#ffab00',
- inverse: 'rgba(0, 0, 0, 0.75)',
+ 50: "#fff8e1",
+ 100: "#ffecb3",
+ 200: "#ffe082",
+ 300: "#ffd54f",
+ 400: "#ffca28",
+ 500: "#ffc107",
+ 600: "#ffb300",
+ 700: "#ffa000",
+ 800: "#ff8f00",
+ 900: "#ff6f00",
+ a100: "#ffe57f",
+ a200: "#ffd740",
+ a400: "#ffc400",
+ a700: "#ffab00",
+ inverse: "rgba(0, 0, 0, 0.75)",
},
orange: {
- 50: '#fff3e0',
- 100: '#ffe0b2',
- 200: '#ffcc80',
- 300: '#ffb74d',
- 400: '#ffa726',
- 500: '#ff9800',
- 600: '#fb8c00',
- 700: '#f57c00',
- 800: '#ef6c00',
- 900: '#e65100',
- a100: '#ffd180',
- a200: '#ffab40',
- a400: '#ff9100',
- a700: '#ff6d00',
- inverse: '#FFF',
+ 50: "#fff3e0",
+ 100: "#ffe0b2",
+ 200: "#ffcc80",
+ 300: "#ffb74d",
+ 400: "#ffa726",
+ 500: "#ff9800",
+ 600: "#fb8c00",
+ 700: "#f57c00",
+ 800: "#ef6c00",
+ 900: "#e65100",
+ a100: "#ffd180",
+ a200: "#ffab40",
+ a400: "#ff9100",
+ a700: "#ff6d00",
+ inverse: "#FFF",
},
- 'deep-orange': {
- 50: '#fbe9e7',
- 100: '#ffccbc',
- 200: '#ffab91',
- 300: '#ff8a65',
- 400: '#ff7043',
- 500: '#ff5722',
- 600: '#f4511e',
- 700: '#e64a19',
- 800: '#d84315',
- 900: '#bf360c',
- a100: '#ff9e80',
- a200: '#ff6e40',
- a400: '#ff3d00',
- a700: '#dd2c00',
- inverse: '#FFF',
+ "deep-orange": {
+ 50: "#fbe9e7",
+ 100: "#ffccbc",
+ 200: "#ffab91",
+ 300: "#ff8a65",
+ 400: "#ff7043",
+ 500: "#ff5722",
+ 600: "#f4511e",
+ 700: "#e64a19",
+ 800: "#d84315",
+ 900: "#bf360c",
+ a100: "#ff9e80",
+ a200: "#ff6e40",
+ a400: "#ff3d00",
+ a700: "#dd2c00",
+ inverse: "#FFF",
},
grey: {
- 50: '#fafafa',
- 100: '#f5f5f5',
- 200: '#eeeeee',
- 300: '#e0e0e0',
- 400: '#bdbdbd',
- 500: '#9e9e9e',
- 600: '#757575',
- 700: '#616161',
- 800: '#424242',
- 900: '#212121',
- inverse: '#FFF',
+ 50: "#fafafa",
+ 100: "#f5f5f5",
+ 200: "#eeeeee",
+ 300: "#e0e0e0",
+ 400: "#bdbdbd",
+ 500: "#9e9e9e",
+ 600: "#757575",
+ 700: "#616161",
+ 800: "#424242",
+ 900: "#212121",
+ inverse: "#FFF",
},
- 'blue-grey': {
- 50: '#eceff1',
- 100: '#cfd8dc',
- 200: '#b0bec5',
- 300: '#90a4ae',
- 400: '#78909c',
- 500: '#607d8b',
- 600: '#546e7a',
- 700: '#455a64',
- 800: '#37474f',
- 900: '#263238',
- inverse: '#FFF',
+ "blue-grey": {
+ 50: "#eceff1",
+ 100: "#cfd8dc",
+ 200: "#b0bec5",
+ 300: "#90a4ae",
+ 400: "#78909c",
+ 500: "#607d8b",
+ 600: "#546e7a",
+ 700: "#455a64",
+ 800: "#37474f",
+ 900: "#263238",
+ inverse: "#FFF",
},
-};
+}
-export default materialDesignColors;
+export default materialDesignColors
diff --git a/docs/js/src/theme-switcher.js b/docs/js/src/theme-switcher.js
index ed12aae58..8f70cba4e 100644
--- a/docs/js/src/theme-switcher.js
+++ b/docs/js/src/theme-switcher.js
@@ -6,90 +6,96 @@
*/
export const themeSwitcher = {
-
// Config
- _scheme: 'auto',
+ _scheme: "auto",
change: {
- light: 'Turn on dark mode ',
- dark: 'Turn off dark mode ',
+ light: "Turn on dark mode ",
+ dark: "Turn off dark mode ",
},
- buttonsTarget: '.theme-switcher',
- localStorageKey: 'picoPreferredColorScheme',
+ buttonsTarget: ".theme-switcher",
+ localStorageKey: "picoPreferredColorScheme",
// Init
init() {
- this.scheme = this.schemeFromLocalStorage;
- this.initSwitchers();
+ this.scheme = this.schemeFromLocalStorage
+ this.initSwitchers()
},
// Get color scheme from local storage
get schemeFromLocalStorage() {
- if (typeof window.localStorage !== 'undefined') {
+ if (typeof window.localStorage !== "undefined") {
if (window.localStorage.getItem(this.localStorageKey) !== null) {
- return window.localStorage.getItem(this.localStorageKey);
+ return window.localStorage.getItem(this.localStorageKey)
}
}
- return this._scheme;
+ return this._scheme
},
// Preferred color scheme
get preferredColorScheme() {
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
+ return window.matchMedia("(prefers-color-scheme: dark)").matches
+ ? "dark"
+ : "light"
},
// Init switchers
initSwitchers() {
- const buttons = document.querySelectorAll(this.buttonsTarget);
+ const buttons = document.querySelectorAll(this.buttonsTarget)
buttons.forEach(button => {
- button.addEventListener('click', () => {
- this.scheme == 'dark' ? this.scheme = 'light' : this.scheme = 'dark';
- }, false);
- });
+ button.addEventListener(
+ "click",
+ () => {
+ this.scheme == "dark"
+ ? (this.scheme = "light")
+ : (this.scheme = "dark")
+ },
+ false
+ )
+ })
},
// Add new button
addButton(config) {
- let button = document.createElement(config.tag);
- button.className = config.class;
- document.querySelector(config.target).appendChild(button);
+ let button = document.createElement(config.tag)
+ button.className = config.class
+ document.querySelector(config.target).appendChild(button)
},
// Set scheme
set scheme(scheme) {
- if (scheme == 'auto') {
- this.preferredColorScheme == 'dark' ? this._scheme = 'dark' : this._scheme = 'light';
+ if (scheme == "auto") {
+ this.preferredColorScheme == "dark"
+ ? (this._scheme = "dark")
+ : (this._scheme = "light")
+ } else if (scheme == "dark" || scheme == "light") {
+ this._scheme = scheme
}
- else if (scheme == 'dark' || scheme == 'light') {
- this._scheme = scheme;
- }
- this.applyScheme();
- this.schemeToLocalStorage();
+ this.applyScheme()
+ this.schemeToLocalStorage()
},
// Get scheme
get scheme() {
- return this._scheme;
+ return this._scheme
},
// Apply scheme
applyScheme() {
- document.querySelector('html').setAttribute('data-theme', this.scheme);
- const buttons = document.querySelectorAll(this.buttonsTarget);
- buttons.forEach(
- button => {
- const text = this.scheme == 'dark' ? this.change.dark : this.change.light;
- button.innerHTML = text;
- button.setAttribute('aria-label', text.replace(/<[^>]*>?/gm, ''));
- }
- );
+ document.querySelector("html").setAttribute("data-theme", this.scheme)
+ const buttons = document.querySelectorAll(this.buttonsTarget)
+ buttons.forEach(button => {
+ const text = this.scheme == "dark" ? this.change.dark : this.change.light
+ button.innerHTML = text
+ button.setAttribute("aria-label", text.replace(/<[^>]*>?/gm, ""))
+ })
},
// Store scheme to local storage
schemeToLocalStorage() {
- if (typeof window.localStorage !== 'undefined') {
- window.localStorage.setItem(this.localStorageKey, this.scheme);
+ if (typeof window.localStorage !== "undefined") {
+ window.localStorage.setItem(this.localStorageKey, this.scheme)
}
},
-};
+}
-export default themeSwitcher;
+export default themeSwitcher
diff --git a/docs/js/src/toggle-navigation.js b/docs/js/src/toggle-navigation.js
index 97341919b..a16ad7b96 100644
--- a/docs/js/src/toggle-navigation.js
+++ b/docs/js/src/toggle-navigation.js
@@ -6,11 +6,10 @@
*/
export const toggleNavigation = {
-
// Config
- _state: 'closed-on-mobile',
- toggleLink: document.getElementById('toggle-docs-navigation'),
- nav: document.querySelector('main > aside > nav'),
+ _state: "closed-on-mobile",
+ toggleLink: document.getElementById("toggle-docs-navigation"),
+ nav: document.querySelector("main > aside > nav"),
// Init
init() {
@@ -18,25 +17,29 @@ export const toggleNavigation = {
},
onToggleClick() {
- this.toggleLink.addEventListener('click', event => {
- event.preventDefault();
- this.state == 'closed-on-mobile'
- ? this.state = 'open'
- : this.state = 'closed-on-mobile';
- this.nav.removeAttribute('class');
- this.nav.classList.add(this.state);
- }, false);
+ this.toggleLink.addEventListener(
+ "click",
+ event => {
+ event.preventDefault()
+ this.state == "closed-on-mobile"
+ ? (this.state = "open")
+ : (this.state = "closed-on-mobile")
+ this.nav.removeAttribute("class")
+ this.nav.classList.add(this.state)
+ },
+ false
+ )
},
// Get state
get state() {
- return this._state;
+ return this._state
},
// Set state
set state(state) {
- this._state = state;
+ this._state = state
},
-};
+}
-export default toggleNavigation;
\ No newline at end of file
+export default toggleNavigation
diff --git a/docs/loading.html b/docs/loading.html
index eaea7cdc5..35364f611 100644
--- a/docs/loading.html
+++ b/docs/loading.html
@@ -1,2 +1,3 @@
-Loading • Pico CSS 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…
\ No newline at end of file
+Loading • Pico CSS 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…
\ No newline at end of file
diff --git a/docs/modal.html b/docs/modal.html
index 868fa66a3..09e41b3c9 100644
--- a/docs/modal.html
+++ b/docs/modal.html
@@ -1,4 +1,5 @@
-Modal • Pico CSS Modal The classic modal element with graceful spacings across devices and viewports. Modals are built with <dialog >
as a wrapper and <article >
as a content container.
Inside <header >
, <a class ="close" >
is defined to float : right ;
allowing a close icon to be top aligned with a title.
Nunc nec ligula a tortor sollicitudin dictum in vel enim. Quisque facilisis turpis vel eros dictum aliquam et nec turpis. Sed eleifend a dui nec ullamcorper. Praesent vehicula lacus ac justo accumsan ullamcorper.
<dialog open >
+Modal • Pico CSS Modal The classic modal element with graceful spacings across devices and viewports. Modals are built with <dialog >
as a wrapper and <article >
as a content container.
Inside <header >
, <a class ="close" >
is defined to float : right ;
allowing a close icon to be top aligned with a title.
Nunc nec ligula a tortor sollicitudin dictum in vel enim. Quisque facilisis turpis vel eros dictum aliquam et nec turpis. Sed eleifend a dui nec ullamcorper. Praesent vehicula lacus ac justo accumsan ullamcorper.
<dialog open >
<article >
<header >
<a href ="#close" aria-label ="Close" class ="close" ></a >
@@ -84,4 +85,4 @@
</html >
.modal-is-closing
brings a closing animation.
<!doctype html>
<html class ="modal-is-open modal-is-closing" >
…
-</html >
Confirm your action! Cras sit amet maximus risus. Pellentesque sodales odio sit amet augue finibus pellentesque. Nullam finibus risus non semper euismod.
\ No newline at end of file
+</html >
Confirm your action! Cras sit amet maximus risus. Pellentesque sodales odio sit amet augue finibus pellentesque. Nullam finibus risus non semper euismod.
\ No newline at end of file
diff --git a/docs/navs.html b/docs/navs.html
index 2ffb4bf0d..ffd888bc1 100644
--- a/docs/navs.html
+++ b/docs/navs.html
@@ -1,4 +1,5 @@
-Navs • Pico CSS Navs The essential navbar component in pure semantic HTML. <nav >
+Navs • Pico CSS Navs The essential navbar component in pure semantic HTML. <nav >
<ul >
<li ><strong >Brand</strong ></li >
</ul >
@@ -31,4 +32,4 @@
<li ><a href ="#" >Category</a ></li >
<li >Page</li >
</ul >
-</nav >
\ No newline at end of file
+</nav >
\ No newline at end of file
diff --git a/docs/progress.html b/docs/progress.html
index 5b922b119..9d3d79959 100644
--- a/docs/progress.html
+++ b/docs/progress.html
@@ -1 +1,2 @@
-Progress • Pico CSS Progress Progress bar element in pure HTML, without JavaScript. A progress bar without a value
attribute is indeterminate.
\ No newline at end of file
+Progress • Pico CSS Progress Progress bar element in pure HTML, without JavaScript. A progress bar without a value
attribute is indeterminate.
\ No newline at end of file
diff --git a/docs/rtl.html b/docs/rtl.html
index 0fc8238dd..6f62f1662 100644
--- a/docs/rtl.html
+++ b/docs/rtl.html
@@ -1,4 +1,5 @@
-RTL (Right-To-Left) • Pico 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 (example ).
<!doctype html>
+RTL (Right-To-Left) • Pico 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 (example ).
<!doctype html>
<html dir ="rtl" lang ="ar" >
...
-</html >
ℹ️ The RTL feature is still experimental and will probably evolve.
\ No newline at end of file
+</html >
ℹ️ The RTL feature is still experimental and will probably evolve.
\ No newline at end of file
diff --git a/docs/scroller.html b/docs/scroller.html
index 7ed195857..86ba9b677 100644
--- a/docs/scroller.html
+++ b/docs/scroller.html
@@ -1,5 +1,6 @@
-Horizontal scroller • Pico CSS
\ No newline at end of file
diff --git a/docs/src/_footer.html b/docs/src/_footer.html
index 12d3be151..05b84a010 100644
--- a/docs/src/_footer.html
+++ b/docs/src/_footer.html
@@ -1,4 +1,13 @@
\ No newline at end of file
+
+
+ Code licensed
+ MIT
+
+
diff --git a/docs/src/_head.html b/docs/src/_head.html
index a60045474..797dbd72f 100644
--- a/docs/src/_head.html
+++ b/docs/src/_head.html
@@ -1,8 +1,8 @@
-
-
+
+
${props.title} • Pico CSS
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
diff --git a/docs/src/_nav.html b/docs/src/_nav.html
index 04e4b497e..a9e99d734 100644
--- a/docs/src/_nav.html
+++ b/docs/src/_nav.html
@@ -2,22 +2,50 @@
-
\ No newline at end of file
+
diff --git a/docs/src/_sidebar.html b/docs/src/_sidebar.html
index dfdf4395a..a4dc23b41 100644
--- a/docs/src/_sidebar.html
+++ b/docs/src/_sidebar.html
@@ -1,13 +1,31 @@
diff --git a/docs/src/accordions.html b/docs/src/accordions.html
index 48dc49b8f..c9049889a 100644
--- a/docs/src/accordions.html
+++ b/docs/src/accordions.html
@@ -1,42 +1,53 @@
-
+
- ${require('./_head.html')
- title=`Accordions`
- description=`Toggle sections of content in pure HTML, without JavaScript.`
- canonical=`accordions.html`
- }
+ ${require('./_head.html') title=`Accordions` description=`Toggle sections of
+ content in pure HTML, without JavaScript.` canonical=`accordions.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`accordions-link`}
-
+
Accordions
- Toggle sections of content in pure HTML, without JavaScript.
+
+ Toggle sections of content in pure HTML, without JavaScript.
+
Accordion 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.
+
+ 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.
+
Accordion 2
Vestibulum id elit quis massa interdum sodales.
- Nunc quis eros vel odio pretium tincidunt nec quis neque.
+
+ 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.
+
+ Cras sed libero aliquet, porta dolor quis, dapibus ipsum.
+
-
-<details >
+ <details >
<summary >Accordion 1</summary >
<p >…</p >
</details >
@@ -48,26 +59,39 @@ Toggle sections of content in pure HTML, without JavaScript.
<li >…</li >
</ul >
</details >
-
- role ="button"
can be used to turn <summary >
into a button.
+
+ role ="button"
can be used to turn
+ <summary >
into a button.
+
Accordion 1
- Aenean vestibulum nunc at libero congue, eu pretium nulla viverra. Fusce sed ex at est egestas vehicula. Integer sit amet lectus mi. Duis ut viverra mauris, at laoreet enim.
+
+ Aenean vestibulum nunc at libero congue, eu pretium nulla
+ viverra. Fusce sed ex at est egestas vehicula. Integer sit amet
+ lectus mi. Duis ut viverra mauris, at laoreet enim.
+
Accordion 2
- Quisque porta dictum ipsum nec vestibulum. Suspendisse non mi ac tellus scelerisque egestas. Sed vel nisi laoreet, rhoncus urna quis, luctus risus. Donec vitae molestie felis.
+
+ Quisque porta dictum ipsum nec vestibulum. Suspendisse non mi ac
+ tellus scelerisque egestas. Sed vel nisi laoreet, rhoncus urna
+ quis, luctus risus. Donec vitae molestie felis.
+
Accordion 3
- Praesent quam ipsum, condimentum non augue at, porttitor interdum tellus. Curabitur ultrices consectetur leo, a placerat mauris malesuada et. In quis varius risus.
+
+ Praesent quam ipsum, condimentum non augue at, porttitor
+ interdum tellus. Curabitur ultrices consectetur leo, a placerat
+ mauris malesuada et. In quis varius risus.
+
-
-<!-- Primary -->
+ <!-- Primary -->
<details >
<summary role ="button" >Accordion 1</summary >
<p >…</p >
@@ -83,14 +107,12 @@ Toggle sections of content in pure HTML, without JavaScript.
<details >
<summary role ="button" class ="contrast" >Accordion 3</summary >
<p >…</p >
-</details >
-
+</details >
${require('./_footer.html')}
-
diff --git a/docs/src/buttons.html b/docs/src/buttons.html
index 7b37c1822..e4b7180c0 100644
--- a/docs/src/buttons.html
+++ b/docs/src/buttons.html
@@ -1,75 +1,107 @@
-
+
- ${require('./_head.html')
- title=`Buttons`
- description=`The essential button in pure HTML, without .classes for the default style.`
- canonical=`buttons.html`
- }
+ ${require('./_head.html') title=`Buttons` description=`The essential button
+ in pure HTML, without .classes for the default style.`
+ canonical=`buttons.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`buttons-link`}
-
+
${require('./_footer.html')}
-
diff --git a/docs/src/cards.html b/docs/src/cards.html
index d3861b73e..9d7f40588 100644
--- a/docs/src/cards.html
+++ b/docs/src/cards.html
@@ -1,46 +1,47 @@
-
+
- ${require('./_head.html')
- title=`Cards`
- description=`A flexible container with graceful spacings across devices and viewports.`
- canonical=`cards.html`
+ ${require('./_head.html') title=`Cards` description=`A flexible container
+ with graceful spacings across devices and viewports.` canonical=`cards.html`
}
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`cards-link`}
-
+
Cards
- A flexible container with graceful spacings across devices and viewports.
+
+ A flexible container with graceful spacings across devices and
+ viewports.
+
-
- I'm a card!
-
+ I'm a card!
<article >I'm a card!</article >
- You can use <header >
and footer <footer >
inside <article >
+
+ You can use <header >
and footer
+ <footer >
inside
+ <article >
+
Body
-<article >
+ <article >
<header >Header</header >
Body
<footer >Footer</footer >
</article >
-
${require('./_footer.html')}
-
diff --git a/docs/src/classless.html b/docs/src/classless.html
index 6321a1a57..67b22656e 100644
--- a/docs/src/classless.html
+++ b/docs/src/classless.html
@@ -1,29 +1,38 @@
-
+
- ${require('./_head.html')
- title=`Class-less version`
- description=`For wild HTML purists, Pico provides a .classless version.`
- canonical=`classless.html`
- }
+ ${require('./_head.html') title=`Class-less version` description=`For wild
+ HTML purists, Pico provides a .classless version.`
+ canonical=`classless.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`classless-link`}
-
+
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.
+
+ Pico provides a .classless
version (example ).
+
+
+ In this version, <header >
,
+ <main >
, and
+ <footer >
act as
+ containers to define a centered or a
+ fluid viewport.
+
-// Containers
+ // Containers
body > header ,
body > main ,
body > footer {
@@ -32,24 +41,46 @@ For wild HTML purists!
Usage:
- Use the default .classless
version if you need centered viewports:
+
+ 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:
+
+ 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 jsDelivr CDN :
+
+ These .classless
versions are also available on
+ jsDelivr CDN :
+
-// Centered viewport
+ // Centered viewport
<link rel ="stylesheet" href ="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.classless.min.css" >
-// Fluid viewport
+ // Fluid viewport
<link rel ="stylesheet" href ="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.fluid.classless.min.css" >
- If you need to customize the default parent (<body >
) for <header >
, <main >
, and <footer >
, you can recompile Pico by defining another CSS selector.
- Useful for React , Gatsby or Next.js .
+
+ If you need to customize the default parent
+ (<body >
) for
+ <header >
,
+ <main >
, and
+ <footer >
, you can recompile Pico by
+ defining another CSS selector.
+
+
+ Useful for React ,
+ Gatsby or
+ Next.js .
+
-/* Custom Class-less version for React */
+ /* Custom Class-less version for React */
// Set the root element
$semantic-root-element : "#root" ;
@@ -63,20 +94,21 @@ For wild HTML purists!
// Import Pico
@import "@picocss/pico/scss/pico" ;
- The code above will compile Pico with the containers defined like this:
+
+ The code above will compile Pico with the containers defined like
+ this:
+
-// Containers
+ // Containers
#root > header ,
#root > main ,
#root > footer {
…
}
-
${require('./_footer.html')}
-
diff --git a/docs/src/containers.html b/docs/src/containers.html
index 63dd3b76a..f83026b0d 100644
--- a/docs/src/containers.html
+++ b/docs/src/containers.html
@@ -1,34 +1,39 @@
-
+
- ${require('./_head.html')
- title=`Containers`
- description=`.container enable a centered viewport, .container-fluid enable a 100% layout.`
- canonical=`containers.html`
- }
+ ${require('./_head.html') title=`Containers` description=`.container enable
+ a centered viewport, .container-fluid enable a 100% layout.`
+ canonical=`containers.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`containers-link`}
-
+
Containers
- .container
enable a centered viewport.
- .container-fluid
enable a 100%
layout.
+ .container
enable a centered viewport.
+ .container-fluid
enable a
+ 100%
layout.
-<body >
+ <body >
<main class ="container" ></main >
</body >
- Pico uses the same breakpoints and viewports sizes as Bootstrap .
+
+ Pico uses the same breakpoints and viewports sizes as
+ Bootstrap .
+
- <header >
, <main >
and <footer >
as direct children of <body >
provide a responsive vertical padding
- <section >
provides a responsive margin-bottom
to separate your sections.
+
+ <header >
,
+ <main >
and
+ <footer >
as direct children of
+ <body >
provide a responsive vertical
+ padding
+
+
+ <section >
provides a responsive
+ margin-bottom
to separate your sections.
+
${require('./_footer.html')}
-
diff --git a/docs/src/customization.html b/docs/src/customization.html
index c56913d52..23072dca5 100644
--- a/docs/src/customization.html
+++ b/docs/src/customization.html
@@ -1,24 +1,26 @@
-
+
- ${require('./_head.html')
- title=`Customization`
- description=`You can customize themes with SCSS, or you can edit the CSS variables. All Pico's styles and colors are set with CSS custom properties (variables).`
- canonical=`customization.html`
- }
+ ${require('./_head.html') title=`Customization` description=`You can
+ customize themes with SCSS, or you can edit the CSS variables. All Pico's
+ styles and colors are set with CSS custom properties (variables).`
+ canonical=`customization.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`customization-link`}
-
+
Customization
- You can customize themes with SCSS or, you can edit the CSS variables.
+
+ You can customize themes with SCSS or, you can edit the CSS
+ variables.
+
Example: pick a color!
@@ -26,32 +28,60 @@ You can customize themes with SCSS or, you can edit the CSS variables.
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.
+
+ 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) */
+ /* Light scheme (Default) */
/* Can be forced with data-theme="light" */
[data-theme="light" ] ,
:root:not([data-theme="dark" ]) {
@@ -90,12 +120,22 @@ Overriding CSS variables
}
- You can find all the CSS variables used in the default theme here: css/themes/default.css
+
+ 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.
+
+ 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 */
+ /* Custom version */
// Override default variables
$primary-500 : … ;
@@ -105,9 +145,12 @@ Importing Pico SASS library
// Import Pico
@import "@picocss/pico/scss/pico" ;
- Alternatively, you can create a custom theme and import it into your project with the components you need.
+
+ Alternatively, you can create a custom theme and import it into your
+ project with the components you need.
+
-/* Custom version */
+ /* Custom version */
// Custom theme
@import "path/themes/custom" ;
@@ -118,11 +161,13 @@ Importing Pico SASS library
…
- Compiling a custom SASS version allows you to create a lighter version with only the components that are useful to you.
+
+ Compiling a custom SASS version allows you to create a lighter
+ version with only the components that are useful to you.
+
${require('./_footer.html')}
-
diff --git a/docs/src/dropdowns.html b/docs/src/dropdowns.html
index 9b9146c15..ffaecfa08 100644
--- a/docs/src/dropdowns.html
+++ b/docs/src/dropdowns.html
@@ -1,11 +1,8 @@
-
+
- ${require('./_head.html')
- title=`Dropdowns`
- description=`Dropdown menus and custom selects without JavaScript.`
- canonical=`dropdowns.html`
- }
+ ${require('./_head.html') title=`Dropdowns` description=`Dropdown menus and
+ custom selects without JavaScript.` canonical=`dropdowns.html` }
@@ -20,15 +17,31 @@
Dropdowns
Dropdown menus and custom selects without JavaScript.
- Dropdowns are built with <details role ="list" >
as a wrapper and <summary >
and <ul >
as direct children.
- For style consistency with the form elements, dropdowns are styled like a <select> by default.
+
+ Dropdowns are built with
+ <details role ="list" >
as a
+ wrapper and <summary >
and
+ <ul >
as direct children.
+
+
+ For style consistency with the form elements, dropdowns are styled
+ like a <select> by default.
+
Dropdown
@@ -38,8 +51,7 @@ Dropdown menus and custom selects without JavaScript.
Something else here
-
-<!-- Dropdown -->
+ <!-- Dropdown -->
<details role ="list" >
<summary aria-haspopup ="listbox" >Dropdown</summary >
<ul role ="listbox" >
@@ -50,43 +62,74 @@ Dropdown menus and custom selects without JavaScript.
</details >
<!-- Select -->
-<select >
+<select >
<option value ="" disabled selected >Select</option >
<option >…</option >
</select >
-
-
+
- <summary role ="button" >
transforms the dropdown into a button.
+
+ <summary role ="button" >
+ transforms the dropdown into a button.
+
- Dropdown as a button 1
+
+ Dropdown as a button 1
+
- Dropdown as a button 2
+
+ Dropdown as a button 2
+
- Dropdown as a button 3
+
+ Dropdown as a button 3
+
-
-<!-- Primary -->
+ <!-- Primary -->
<details role ="list" >
<summary aria-haspopup ="listbox" role ="button" >
Dropdown as a button 1
@@ -122,10 +165,13 @@ Dropdown menus and custom selects without JavaScript.
</ul >
</details >
-
-
+
- Dropdowns can be used as custom selects with <input type ="radio" >
or <input type ="checkbox" >
+
+ Dropdowns can be used as custom selects with
+ <input type ="radio" >
or
+ <input type ="checkbox" >
+
Select single element
@@ -138,7 +184,12 @@ Dropdown menus and custom selects without JavaScript.
-
+
Medium
@@ -151,7 +202,9 @@ Dropdown menus and custom selects without JavaScript.
- Select multiple elements
+
+ Select multiple elements
+
@@ -174,8 +227,7 @@ Dropdown menus and custom selects without JavaScript.
-
-<!-- With radio buttons -->
+ <!-- With radio buttons -->
<details role ="list" >
<summary aria-haspopup ="listbox" >Dropdown</summary >
<ul role ="listbox" >
@@ -224,10 +276,14 @@ Dropdown menus and custom selects without JavaScript.
</li >
</ul >
</details >
-
-
+
+
- Dropdowns can be used inside a <nav> with a nested <details role ="list" >
+
+ Dropdowns can be used inside a
+ <nav> with a nested
+ <details role ="list" >
+
Example with a dropdown as a link:
@@ -238,19 +294,30 @@ Dropdown menus and custom selects without JavaScript.
Link
- Dropdown
+
+ Dropdown
+
-
-<nav >
+ <nav >
<ul >
<li ><strong >Brand</strong ></li >
</ul >
@@ -268,8 +335,7 @@ Dropdown menus and custom selects without JavaScript.
</li >
</ul >
</nav >
-
-
+
Example with a default dropdown and a dropdown as a button:
@@ -279,27 +345,48 @@ Dropdown menus and custom selects without JavaScript.
Dropdown
- Dropdown
+
+ Dropdown
+
-
-<nav >
+ <nav >
<ul >
<li >
<details role ="list" >
@@ -323,11 +410,17 @@ Dropdown menus and custom selects without JavaScript.
</li >
</ul >
</nav >
-
-
+
- You can also use <li role ="list" >
as a nested wrapper to render a list as a dropdown.
- ℹ️ This syntax is experimental. In this version, the dropdown menu is triggered on hover.
+
+ You can also use
+ <li role ="list" >
as a nested
+ wrapper to render a list as a dropdown.
+
+
+ ℹ️ This syntax is experimental. In this version, the dropdown
+ menu is triggered on hover.
+
-
-<nav >
+ <nav >
<ul >
<li ><strong >Brand</strong ></li >
</ul >
@@ -365,13 +472,11 @@ Dropdown menus and custom selects without JavaScript.
</li >
</ul >
</nav >
-
-
+
${require('./_footer.html')}
-
diff --git a/docs/src/forms.html b/docs/src/forms.html
index 7f6f41be0..3567f4f6e 100644
--- a/docs/src/forms.html
+++ b/docs/src/forms.html
@@ -1,11 +1,9 @@
-
+
- ${require('./_head.html')
- title=`Forms`
- description=`All form elements are fully responsive in pure semantic HTML, allowing forms to scale gracefully across devices and viewports.`
- canonical=`forms.html`
- }
+ ${require('./_head.html') title=`Forms` description=`All form elements are
+ fully responsive in pure semantic HTML, allowing forms to scale gracefully
+ across devices and viewports.` canonical=`forms.html` }
@@ -18,30 +16,62 @@
${require('./_footer.html')}
-
diff --git a/docs/src/grid.html b/docs/src/grid.html
index 608351639..1653b5141 100644
--- a/docs/src/grid.html
+++ b/docs/src/grid.html
@@ -1,24 +1,24 @@
-
+
- ${require('./_head.html')
- title=`Grid`
- description=`.grid enable a minimal grid system with auto-layout columns.`
- canonical=`grid.html`
- }
+ ${require('./_head.html') title=`Grid` description=`.grid enable a minimal
+ grid system with auto-layout columns.` canonical=`grid.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`grid-link`}
-
+
Grid
- .grid
enable a minimal grid system with auto-layout columns.
+
+ .grid
enable a minimal grid system with auto-layout
+ columns.
+
@@ -28,37 +28,81 @@
.grid
enable a minimal grid system with auto-layout columns.4
- Columns intentionally collapses below large devices (992px )
- To go further, discover how to merge Pico with the Bootstrap grid system .
+
+ 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 .
+
+ 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 .
+
${require('./_footer.html')}
-
diff --git a/docs/src/index.html b/docs/src/index.html
index 5c52c5480..d38c44173 100644
--- a/docs/src/index.html
+++ b/docs/src/index.html
@@ -1,19 +1,18 @@
-
+
- ${require('./_head.html')
- title=`Documentation`
- description=`Pico works without package manager or dependencies! There are 4 ways to get started with Pico CSS: manually, from a CDN, with NPM, or with Composer.`
- canonical=``
- }
+ ${require('./_head.html') title=`Documentation` description=`Pico works
+ without package manager or dependencies! There are 4 ways to get started
+ with Pico CSS: manually, from a CDN, with NPM, or with Composer.`
+ canonical=`` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`start-link`}
-
+
@@ -22,18 +21,31 @@ Works without package manager or dependencies 🙂!
There are 4 ways to get started with Pico CSS:
Install manually
- Download Pico and link /css/pico.min.css
in the <head >
of your website.
+
+ 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 jsDelivr CDN to link pico.css
+
+ Alternatively, you can use
+ jsDelivr CDN
+ to link pico.css
+
<link rel ="stylesheet" href ="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.min.css" >
Install with NPM
npm install @picocss/pico
Install with Composer
- composer require picocss/pico
+ composer require picocss/pico
Starter HTML template:
-<!doctype html>
+ <!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
@@ -47,11 +59,9 @@ Install with Composer
</main >
</body >
</html >
-
${require('./_footer.html')}
-
diff --git a/docs/src/loading.html b/docs/src/loading.html
index b2fe190d6..0ee31cb11 100644
--- a/docs/src/loading.html
+++ b/docs/src/loading.html
@@ -1,33 +1,31 @@
-
+
- ${require('./_head.html')
- title=`Loading`
- description=`aria-busy='true' enable a loading indicator.`
- canonical=`loading.html`
- }
+ ${require('./_head.html') title=`Loading` description=`aria-busy='true'
+ enable a loading indicator.` canonical=`loading.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`loading-link`}
-
+
Loading
- aria-busy ="true"
enable a loading indicator.
+
+ aria-busy ="true"
enable a loading
+ indicator.
+
Please wait…
It can be applied to any block:
@@ -35,7 +33,9 @@ aria-busy ="true"
enable a loading indicator.
<article aria-busy ="true" ></article >
Or any text element:
- Generating link, please wait…
+ Generating link, please wait…
@@ -43,7 +43,6 @@ aria-busy ="true"
enable a loading indicator.
${require('./_footer.html')}
-
diff --git a/docs/src/modal.html b/docs/src/modal.html
index 5feb1cef6..f0cbc8988 100644
--- a/docs/src/modal.html
+++ b/docs/src/modal.html
@@ -1,45 +1,60 @@
-
+
- ${require('./_head.html')
- title=`Modal`
- description=`A flexible container with graceful spacings across devices and viewports.`
- canonical=`modal.html`
+ ${require('./_head.html') title=`Modal` description=`A flexible container
+ with graceful spacings across devices and viewports.` canonical=`modal.html`
}
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`modal-link`}
-
+
Modal
- The classic modal element with graceful spacings across devices and viewports.
+
+ The classic modal element with graceful spacings across devices
+ and viewports.
+
- Modals are built with <dialog >
as a wrapper and <article >
as a content container.
- Inside <header >
, <a class ="close" >
is defined to float : right ;
allowing a close icon to be top aligned with a title.
+
+ Modals are built with <dialog >
as a
+ wrapper and <article >
as a content
+ container.
+
+
+ Inside <header >
,
+ <a class ="close" >
is defined
+ to float : right ;
allowing a close icon to
+ be top aligned with a title.
+
- Nunc nec ligula a tortor sollicitudin dictum in vel enim.
- Quisque facilisis turpis vel eros dictum aliquam et nec turpis.
- Sed eleifend a dui nec ullamcorper.
- Praesent vehicula lacus ac justo accumsan ullamcorper.
+ Nunc nec ligula a tortor sollicitudin dictum in vel enim.
+ Quisque facilisis turpis vel eros dictum aliquam et nec turpis.
+ Sed eleifend a dui nec ullamcorper. Praesent vehicula lacus ac
+ justo accumsan ullamcorper.
-<dialog open >
+ <dialog open >
<article >
<header >
<a href ="#close" aria-label ="Close" class ="close" ></a >
@@ -54,23 +69,37 @@ The classic modal element with graceful spacings across devices and viewport
</article >
</dialog >
- Inside <footer >
, the content is right aligned by default.
+
+ Inside <footer >
, the content is right
+ aligned by default.
+
Confirm your action!
- Mauris non nibh vel nisi sollicitudin malesuada.
- Donec ut sagittis erat. Praesent eu eros felis.
- Ut consectetur placerat pulvinar.
+ Mauris non nibh vel nisi sollicitudin malesuada. Donec ut
+ sagittis erat. Praesent eu eros felis. Ut consectetur placerat
+ pulvinar.
-<dialog open >
+ <dialog open >
<article >
<h3 >Confirm your action!</h3 >
<p >
@@ -91,10 +120,15 @@ Toggle a modal by clicking the button below.
- Launch demo modal
+
+ Launch demo modal
+
-
-<!-- Button to trigger the modal -->
+ <!-- Button to trigger the modal -->
<button class ="contrast"
data-target ="modal-example"
onClick ="toggleModal(event)" >
@@ -133,15 +167,26 @@ Toggle a modal by clicking the button below.
</footer >
</article >
</dialog >
-
- Pico does not include JavaScript code. You will need to implement your JS to interact with modals.
- As a starting point, you can look at this example: modal.js .
- To make a modal appear, add the open
attribute to the <dialog >
container.
+
+ Pico does not include JavaScript code. You will need to implement
+ your JS to interact with modals.
+
+
+ As a starting point, you can look at this example:
+ modal.js .
+
+
+ To make a modal appear, add the open
attribute
+ to the <dialog >
container.
+
-<!-- Open modal-->
+ <!-- Open modal-->
<dialog open >
<article >
…
@@ -158,49 +203,73 @@ Toggle a modal by clicking the button below.
Utilities
Modals come with 3 utility classes.
- ℹ️ These classes are not available in the class-less version .
- .modal-is-open
prevents any scrolling and interactions below the modal.
+
+ ℹ️ These classes are not available in the
+ class-less version .
+
+
+ .modal-is-open
prevents any scrolling and interactions
+ below the modal.
+
-<!doctype html>
+ <!doctype html>
<html class ="modal-is-open" >
…
</html >
.modal-is-opening
brings an opening animation.
-<!doctype html>
+ <!doctype html>
<html class ="modal-is-open modal-is-opening" >
…
</html >
-
+
.modal-is-closing
brings a closing animation.
-<!doctype html>
+ <!doctype html>
<html class ="modal-is-open modal-is-closing" >
…
</html >
-
${require('./_footer.html')}
-
-
+
Confirm your action!
- Cras sit amet maximus risus. Pellentesque sodales odio sit amet augue finibus pellentesque. Nullam finibus risus non semper euismod.
+
+ Cras sit amet maximus risus. Pellentesque sodales odio sit amet augue
+ finibus pellentesque. Nullam finibus risus non semper euismod.
+
-
-
-
\ No newline at end of file
+
diff --git a/docs/src/navs.html b/docs/src/navs.html
index f109deb96..5434534a5 100644
--- a/docs/src/navs.html
+++ b/docs/src/navs.html
@@ -1,19 +1,16 @@
-
+
- ${require('./_head.html')
- title=`Navs`
- description=`The essential navbar component in pure semantic HTML.`
- canonical=`navs.html`
- }
+ ${require('./_head.html') title=`Navs` description=`The essential navbar
+ component in pure semantic HTML.` canonical=`navs.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`navs-link`}
-
+
@@ -28,12 +25,15 @@ The essential navbar component in pure semantic HTML.
-
-<nav >
+ <nav >
<ul >
<li ><strong >Brand</strong ></li >
</ul >
@@ -43,21 +43,39 @@ The essential navbar component in pure semantic HTML.
<li ><a href ="#" role ="button" >Button</a ></li >
</ul >
</nav >
-
- <ul >
are automatically distributed horizontally.
+
+ <ul >
are automatically distributed
+ horizontally.
+
<li >
are unstyled and inlined.
-
-<nav >
+ <nav >
<ul >
<li ><a href ="#" class ="secondary" >…</a ></li >
</ul >
@@ -88,10 +124,12 @@ The essential navbar component in pure semantic HTML.
<li ><a href ="#" class ="secondary" >…</a ></li >
</ul >
</nav >
-
- Inside <aside >
, navs are stacked vertically.
+
+ Inside <aside >
, navs are stacked
+ vertically.
+
@@ -103,8 +141,7 @@ The essential navbar component in pure semantic HTML.
-
-<aside >
+ <aside >
<nav >
<ul >
<li ><a href ="#" >Link</a ></li >
@@ -113,45 +150,42 @@ The essential navbar component in pure semantic HTML.
</ul >
</nav >
</aside >
+
+
-
-
-
- With aria-label ="breadcrumb"
, you can turn a nav into a breadcrumb.
-
-
-
-
-
+
+ With aria-label ="breadcrumb"
, you can turn a nav into a breadcrumb.
+
-
-
- ${require('./_footer.html')}
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+ ${require('./_footer.html')}
+
+
+
+
+
diff --git a/docs/src/progress.html b/docs/src/progress.html
index e5ce1e29e..a9887459b 100644
--- a/docs/src/progress.html
+++ b/docs/src/progress.html
@@ -1,11 +1,8 @@
-
+
- ${require('./_head.html')
- title=`Progress`
- description=`Progress bar element in pure HTML, without JavaScript.`
- canonical=`progress.html`
- }
+ ${require('./_head.html') title=`Progress` description=`Progress bar element
+ in pure HTML, without JavaScript.` canonical=`progress.html` }
@@ -23,24 +20,22 @@ Progress bar element in pure HTML, without JavaScript.
- A progress bar without a value
attribute is indeterminate.
+
+ A progress bar without a value
attribute is
+ indeterminate.
+
-
-<progress ></progress >
-
+ <progress ></progress >
${require('./_footer.html')}
-
diff --git a/docs/src/rtl.html b/docs/src/rtl.html
index 479a30747..89b9fce51 100644
--- a/docs/src/rtl.html
+++ b/docs/src/rtl.html
@@ -1,37 +1,43 @@
-
+
- ${require('./_head.html')
- title=`RTL (Right-To-Left)`
- description=`Support for right-to-left text in Pico with dir='rtl'`
- canonical=`rtl.html`
- }
+ ${require('./_head.html') title=`RTL (Right-To-Left)` description=`Support
+ for right-to-left text in Pico with dir='rtl'` canonical=`rtl.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`rtl-link`}
-
+
RTL
Support for right-to-left text in Pico.
- To enable RTL in Pico you need to set dir ="rtl"
on the <html >
element (example ).
+
+ To enable RTL in Pico you need to set
+ dir ="rtl"
on the <html >
element (example ).
+
-<!doctype html>
+ <!doctype html>
<html dir ="rtl" lang ="ar" >
...
</html >
- ℹ️ The RTL feature is still experimental and will probably evolve.
+
+ ℹ️ The RTL feature is still experimental and will probably
+ evolve.
+
${require('./_footer.html')}
-
diff --git a/docs/src/scroller.html b/docs/src/scroller.html
index bea1ab430..d49aadd8f 100644
--- a/docs/src/scroller.html
+++ b/docs/src/scroller.html
@@ -1,24 +1,25 @@
-
+
- ${require('./_head.html')
- title=`Horizontal scroller`
- description=`<figure> acts as a container to make any content scrollable horizontally.`
- canonical=`scroller.html`
- }
+ ${require('./_head.html') title=`Horizontal scroller`
+ description=`<figure> acts as a container to make any content
+ scrollable horizontally.` canonical=`scroller.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`scroller-link`}
-
+
${require('./_footer.html')}
-
diff --git a/docs/src/tables.html b/docs/src/tables.html
index d097f00c5..d92c88b14 100644
--- a/docs/src/tables.html
+++ b/docs/src/tables.html
@@ -1,19 +1,16 @@
-
+
- ${require('./_head.html')
- title=`Tables`
- description=`Default styles for tables without .classes`
- canonical=`tables.html`
- }
+ ${require('./_head.html') title=`Tables` description=`Default styles for
+ tables without .classes` canonical=`tables.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`tables-link`}
-
+
@@ -71,7 +68,7 @@ Default styles for tables without .classes
-<table >
+ <table >
<thead >
<tr >
<th scope ="col" >#</th >
@@ -120,7 +117,9 @@ Default styles for tables without .classes
</tfoot >
</table >
- role ="grid"
enable striped rows.
+
+ role ="grid"
enable striped rows.
+
@@ -162,14 +161,12 @@ Default styles for tables without .classes
-<table role ="grid" >
+ <table role ="grid" >
…
</table >
-
${require('./_footer.html')}
-
diff --git a/docs/src/tooltips.html b/docs/src/tooltips.html
index be225a3b7..912661853 100644
--- a/docs/src/tooltips.html
+++ b/docs/src/tooltips.html
@@ -1,63 +1,86 @@
-
+
- ${require('./_head.html')
- title=`Tooltips`
- description=`Enable tooltips everywhere in pure HTML, without JavaScript.`
- canonical=`tooltips.html`
- }
+ ${require('./_head.html') title=`Tooltips` description=`Enable tooltips
+ everywhere in pure HTML, without JavaScript.` canonical=`tooltips.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`tooltips-link`}
-
+
${require('./_footer.html')}
-
diff --git a/docs/src/typography.html b/docs/src/typography.html
index 55cdc1fc2..7e8b09926 100644
--- a/docs/src/typography.html
+++ b/docs/src/typography.html
@@ -1,11 +1,9 @@
- ${require('./_head.html')
- title=`Typography`
- description=`All typographic elements are responsive, allowing text to scale gracefully across devices and viewports.`
- canonical=`typography.html`
- }
+ ${require('./_head.html') title=`Typography` description=`All typographic
+ elements are responsive, allowing text to scale gracefully across devices
+ and viewports.` canonical=`typography.html` }
@@ -163,8 +161,14 @@ Heading 2
- Links come with .secondary
and .contrast
styles.
- ℹ️ These classes are not available in the class-less version .
+
+ Links come with .secondary
and
+ .contrast
styles.
+
+
+ ℹ️ These classes are not available in the
+ class-less version .
+
Primary
+
- ${require('./_head.html')
- title=`We love .classes`
- description=`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.`
- canonical=`we-love-classes.html`
- }
+ ${require('./_head.html') title=`We love .classes` description=`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.` canonical=`we-love-classes.html` }
${require('./_nav.html')}
-
+
${require('./_sidebar.html') active=`we-love-classes-link`}
-
+
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.
+
+ 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.
+
+ Just try to keep your HTML clean and semantic to keep the Pico
+ spirit.
+
<button class ="button-red margin-large padding-medium" >Action</button >
${require('./_footer.html')}
-
diff --git a/docs/tables.html b/docs/tables.html
index 869c8c4d1..7c663d6a0 100644
--- a/docs/tables.html
+++ b/docs/tables.html
@@ -1,4 +1,5 @@
-Tables • Pico CSS 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 # Total Total Total Total Total
<table >
+Tables • Pico CSS 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 # Total Total Total Total Total
<table >
<thead >
<tr >
<th scope ="col" >#</th >
@@ -47,4 +48,4 @@
</tfoot >
</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 >
\ No newline at end of file
+</table >
\ No newline at end of file
diff --git a/docs/themes.html b/docs/themes.html
index 1106b7599..cb69de520 100644
--- a/docs/themes.html
+++ b/docs/themes.html
@@ -1,8 +1,8 @@
-Themes • Pico CSS Themes • Pico CSS 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
… Color schemes can be defined for the entire document using <html data-theme ="light" >
or for specific HTML elements, such as <article data-theme ="dark" >
.
Color schemes at the HTML tag level work great for elements such as a
, button
, table
, input
, textarea
, select
, article
, dialog
, progress
.
CSS variables specific to the color scheme are assigned to every HTML tag. However, to maintain transparent backgrounds and ensure colors are inherited from the parent tag, we have not enforced specific background and color settings across all HTML tags.
For some other HTML tags, you might need to explicitly specify background-color
and color
.
Light theme <article data-theme ="light" >
+ ('prefers-color-scheme: dark')."/>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
… Color schemes can be defined for the entire document using <html data-theme ="light" >
or for specific HTML elements, such as <article data-theme ="dark" >
.
Color schemes at the HTML tag level work great for elements such as a
, button
, table
, input
, textarea
, select
, article
, dialog
, progress
.
CSS variables specific to the color scheme are assigned to every HTML tag. However, to maintain transparent backgrounds and ensure colors are inherited from the parent tag, we have not enforced specific background and color settings across all HTML tags.
For some other HTML tags, you might need to explicitly specify background-color
and color
.
Light theme Dark theme
\ No newline at end of file
+</article >
\ No newline at end of file
diff --git a/docs/tooltips.html b/docs/tooltips.html
index 107c75745..704ebc085 100644
--- a/docs/tooltips.html
+++ b/docs/tooltips.html
@@ -1,8 +1,9 @@
-Tooltips • Pico CSS
\ No newline at end of file
diff --git a/docs/typography.html b/docs/typography.html
index 34019189d..f09503233 100644
--- a/docs/typography.html
+++ b/docs/typography.html
@@ -1,4 +1,6 @@
-Typography • Pico CSS 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 17.5px
Headings:
Heading 1 Heading 2 Heading 3 Heading 4 Heading 5 Heading 6 <h1 >Heading 1</h1 >
+Typography • Pico CSS 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 17.5px
Headings:
Heading 1 Heading 2 Heading 3 Heading 4 Heading 5 Heading 6 <h1 >Heading 1</h1 >
<h2 >Heading 2</h2 >
<h3 >Heading 3</h3 >
<h4 >Heading 4</h4 >
@@ -14,4 +16,4 @@
<footer >
<cite >- Phasellus eget lacinia</cite >
</footer >
-</blockquote >
\ No newline at end of file
+</blockquote >
\ No newline at end of file
diff --git a/docs/we-love-classes.html b/docs/we-love-classes.html
index 2e0944e37..a80cf05e1 100644
--- a/docs/we-love-classes.html
+++ b/docs/we-love-classes.html
@@ -1 +1,4 @@
-We love .classes • Pico CSS 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 >
\ No newline at end of file
+We love .classes • Pico CSS 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 >
\ No newline at end of file