diff --git a/public/assets/scaffolding-min.js b/public/assets/scaffolding-min.js index 7c50c30..3713a0a 100644 --- a/public/assets/scaffolding-min.js +++ b/public/assets/scaffolding-min.js @@ -3372,10 +3372,10 @@ function init() { scroller.addEventListener("scroll", updateScrollState); window.addEventListener("resize", updateScrollState); updateScrollState(); - ul.innerHTML = spacer !== true ? tablist : "".concat(tablist, "
"); + ul.innerHTML = spacer !== true ? tablist : "".concat(tablist, ""); requestAnimationFrame(updateScrollState); setTimeout(updateScrollState, 50); - ul.innerHTML = spacer !== true ? tablist : "".concat(tablist, ""); + ul.innerHTML = spacer !== true ? tablist : "".concat(tablist, ""); // Tab ordering if (tabGroup.hasAttribute("order") || tabGroup.hasAttribute("data-order")) { diff --git a/public/assets/scaffolding.css b/public/assets/scaffolding.css index cc85870..9da5af5 100644 --- a/public/assets/scaffolding.css +++ b/public/assets/scaffolding.css @@ -613,7 +613,7 @@ color-samples color-sample notes { padding-top: 0.5rem; } -tooltip { +tooltip, tool-tip { background: #fff; border-radius: 0.5rem; color: #000; @@ -647,7 +647,7 @@ tooltip { will-change: filter; z-index: 10; } -tooltip::before { +tooltip::before, tool-tip::before { clip-path: inset(50%); clip: rect(1px, 1px, 1px, 1px); content: "; Has tooltip: "; @@ -658,7 +658,7 @@ tooltip::before { position: absolute; width: 1px; } -tooltip::after { +tooltip::after, tool-tip::after { background: #fff; content: ""; inset: 0; @@ -671,11 +671,17 @@ tooltip:is([tip-position=top], [tip-position=block-start], :not([tip-position]), [tip-position=bottom], +[tip-position=block-end]), tool-tip:is([tip-position=top], +[tip-position=block-start], +:not([tip-position]), +[tip-position=bottom], [tip-position=block-end]) { text-align: center; } tooltip:is([tip-position=top], [tip-position=block-start], +:not([tip-position])), tool-tip:is([tip-position=top], +[tip-position=block-start], :not([tip-position])) { inset-inline-start: 50%; inset-block-end: calc(100% + 0.75rem + 1rem); @@ -683,6 +689,8 @@ tooltip:is([tip-position=top], } tooltip:is([tip-position=top], [tip-position=block-start], +:not([tip-position]))::after, tool-tip:is([tip-position=top], +[tip-position=block-start], :not([tip-position]))::after { --tooltip-pointer: conic-gradient(from -30deg at bottom, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) bottom/100% 50% no-repeat; inset-block-end: -1rem; @@ -690,12 +698,14 @@ tooltip:is([tip-position=top], border-block-end: 1rem solid transparent; } tooltip:is([tip-position=right], +[tip-position=inline-end]), tool-tip:is([tip-position=right], [tip-position=inline-end]) { inset-inline-start: calc(100% + 1.5rem + 1rem); inset-block-end: 50%; --tooltip-y: 50%; } tooltip:is([tip-position=right], +[tip-position=inline-end])::after, tool-tip:is([tip-position=right], [tip-position=inline-end])::after { --tooltip-pointer: conic-gradient(from 60deg at left, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) left/50% 100% no-repeat; inset-inline-start: -1rem; @@ -703,12 +713,14 @@ tooltip:is([tip-position=right], border-inline-start: 1rem solid transparent; } tooltip:is([tip-position=bottom], +[tip-position=block-end]), tool-tip:is([tip-position=bottom], [tip-position=block-end]) { inset-inline-start: 50%; inset-block-start: calc(100% + 0.75rem + 1rem); --tooltip-x: calc(50% * -1); } tooltip:is([tip-position=bottom], +[tip-position=block-end])::after, tool-tip:is([tip-position=bottom], [tip-position=block-end])::after { --tooltip-pointer: conic-gradient(from 150deg at top, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) top/100% 50% no-repeat; inset-block-start: -1rem; @@ -716,12 +728,14 @@ tooltip:is([tip-position=bottom], border-block-start: 1rem solid transparent; } tooltip:is([tip-position=left], +[tip-position=inline-start]), tool-tip:is([tip-position=left], [tip-position=inline-start]) { inset-inline-end: calc(100% + 1.5rem + 1rem); inset-block-end: 50%; --tooltip-y: 50%; } tooltip:is([tip-position=left], +[tip-position=inline-start])::after, tool-tip:is([tip-position=left], [tip-position=inline-start])::after { --tooltip-pointer: conic-gradient(from -120deg at right, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) right/50% 100% no-repeat; inset-inline-end: -1rem; @@ -729,21 +743,21 @@ tooltip:is([tip-position=left], border-inline-end: 1rem solid transparent; } @media (prefers-color-scheme: dark) { - tooltip { + tooltip, tool-tip { background: #1f2127; color: #fff; -webkit-filter: drop-shadow(0 3px 3px hsla(0, 0%, 0%, 0.5)) drop-shadow(0 12px 12px hsla(0, 0%, 0%, 0.5)); filter: drop-shadow(0 3px 3px hsla(0, 0%, 0%, 0.5)) drop-shadow(0 12px 12px hsla(0, 0%, 0%, 0.5)); } - tooltip::after { + tooltip::after, tool-tip::after { background: #1f2127; } } -:has(> tool-tip) { +:has(> tooltip), :has(> tool-tip) { position: relative; } -:has(> tool-tip):is(:hover, :focus-visible, :active) > tool-tip { +:has(> tooltip):is(:hover, :focus-visible, :active) > tool-tip, :has(> tooltip):is(:hover, :focus-visible, :active) > tooltip, :has(> tool-tip):is(:hover, :focus-visible, :active) > tool-tip, :has(> tool-tip):is(:hover, :focus-visible, :active) > tooltip { display: block; opacity: 1; -webkit-transition-delay: 300ms; @@ -751,16 +765,20 @@ tooltip:is([tip-position=left], } @media (prefers-reduced-motion: no-preference) { - :has(> tool-tip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tool-tip { + :has(> tool-tip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tool-tip, + :has(> tooltip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tooltip { --tooltip-y: 3px; } - :has(> tool-tip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tool-tip { + :has(> tool-tip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tool-tip, + :has(> tooltip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tooltip { --tooltip-x: calc(-1 * -3px * -1); } - :has(> tool-tip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tool-tip { + :has(> tool-tip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tool-tip, + :has(> tooltip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tooltip { --tooltip-y: -3px; } - :has(> tool-tip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tool-tip { + :has(> tool-tip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tool-tip, + :has(> tooltip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tooltip { --tooltip-x: calc(-1 * 3px * -1); } } @@ -1150,8 +1168,8 @@ body .container main article tabset, body .container main article .tab-group { margin: 2rem 0 1rem 0; } body .container main article tabset [role=tablist] li.selected, body .container main article .tab-group [role=tablist] li.selected { - background-color: var(--colour-green); - color: var(--colour-white); + background-color: var(--color-blue); + color: var(--color-white); } body .container main article tabset > ul, body .container main article tabset .tab-scroll > ul, body .container main article .tab-group > ul, diff --git a/public/patterns/core/tabs/index.html b/public/patterns/core/tabs/index.html index b47664d..4e8bb68 100644 --- a/public/patterns/core/tabs/index.html +++ b/public/patterns/core/tabs/index.html @@ -43,8 +43,8 @@ margin: 2rem 0 1rem 0; } tabset [role=tablist] li.selected, .tab-group [role=tablist] li.selected { - background-color: var(--colour-green); - color: var(--colour-white); + background-color: var(--color-blue); + color: var(--color-white); } tabset > ul, tabset .tab-scroll > ul, .tab-group > ul, @@ -244,9 +244,8 @@ $tab-notselected-text: #000 !default; margin: 2rem 0 1rem 0; [role="tablist"] li.selected { - background-color: var(--colour-green); - color: var(--colour-white); - + background-color: var(--color-blue); + color: var(--color-white); } > ul, @@ -677,12 +676,12 @@ export function init(container = document, spacer = true) { window.addEventListener("resize", updateScrollState); updateScrollState(); - ul.innerHTML = spacer !== true ? tablist : `${tablist}`; + ul.innerHTML = spacer !== true ? tablist : `${tablist}`; requestAnimationFrame(updateScrollState); setTimeout(updateScrollState, 50); - ul.innerHTML = spacer !== true ? tablist : `${tablist}`; + ul.innerHTML = spacer !== true ? tablist : `${tablist}`; // Tab ordering if (tabGroup.hasAttribute("order") || tabGroup.hasAttribute("data-order")) { diff --git a/public/patterns/core/tooltip/index.html b/public/patterns/core/tooltip/index.html index 9b9bc2d..0430afd 100644 --- a/public/patterns/core/tooltip/index.html +++ b/public/patterns/core/tooltip/index.html @@ -31,15 +31,57 @@Link with a tool tipTool tip content
Link with a tool tipTool tip content
- a(href="#") Link with a tool tip - span(role="tooltip" inert tip-position="right") Tool tip content+
mixin tooltip(a)
+ -
+ const required = ['text']
+ const optional = ['tip-position', 'tip-align', 'inert', 'role' ].concat(required)
+
+ // function to strip unallowed options.
+ const allowed = (obj, whitelist) => {
+ const set = new Set(whitelist);
+ const result = {};
+ for (const [k, v] of Object.entries(obj)) {
+ if (set.has(k)) result[k] = v;
+ }
+ return result;
+ }
+
+ // default values
+ const defaults = {
+ "tip-position": "right",
+ inert: "inert",
+ role: "tooltip",
+ }
+
+ // unhyphenated to hypenated
+ const map = {
+ position: 'tip-position',
+ align: 'tip-align'
+ }
+ for (const [from, to] of Object.entries(map)) {
+ if (a[from] !== undefined) {
+ a[to] = a[from]
+ delete a[from]
+ }
+ }
+
+ // recheck for required and output if everything required is there.
+ if (a && required.some(key => !(key in a)))
+ p Missing keys: #{required.filter(key => !(key in a))}
+ else
+ -
+ text = a.text
+ a.text = undefined
+ a = allowed({...defaults, ...a}, optional)
+
+ tooltip&attributes(a)!= text
/* Position Options
- top / block-start
- right / inline-end
- bottom / block-end
- left / inline-start
*/
-[role=tooltip] {
+tooltip, tool-tip {
background: #fff;
border-radius: 0.5rem;
color: #000;
@@ -73,7 +115,7 @@
will-change: filter;
z-index: 10;
}
-[role=tooltip]::before {
+tooltip::before, tool-tip::before {
clip-path: inset(50%);
clip: rect(1px, 1px, 1px, 1px);
content: "; Has tooltip: ";
@@ -84,7 +126,7 @@
position: absolute;
width: 1px;
}
-[role=tooltip]::after {
+tooltip::after, tool-tip::after {
background: #fff;
content: "";
inset: 0;
@@ -93,21 +135,29 @@
position: absolute;
z-index: -1;
}
-[role=tooltip]:is([tip-position=top],
+tooltip:is([tip-position=top],
+[tip-position=block-start],
+:not([tip-position]),
+[tip-position=bottom],
+[tip-position=block-end]), tool-tip:is([tip-position=top],
[tip-position=block-start],
:not([tip-position]),
[tip-position=bottom],
[tip-position=block-end]) {
text-align: center;
}
-[role=tooltip]:is([tip-position=top],
+tooltip:is([tip-position=top],
+[tip-position=block-start],
+:not([tip-position])), tool-tip:is([tip-position=top],
[tip-position=block-start],
:not([tip-position])) {
inset-inline-start: 50%;
inset-block-end: calc(100% + 0.75rem + 1rem);
--tooltip-x: calc(50% * -1);
}
-[role=tooltip]:is([tip-position=top],
+tooltip:is([tip-position=top],
+[tip-position=block-start],
+:not([tip-position]))::after, tool-tip:is([tip-position=top],
[tip-position=block-start],
:not([tip-position]))::after {
--tooltip-pointer: conic-gradient(from -30deg at bottom, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) bottom/100% 50% no-repeat;
@@ -115,39 +165,45 @@
-webkit-border-after: 1rem solid transparent;
border-block-end: 1rem solid transparent;
}
-[role=tooltip]:is([tip-position=right],
+tooltip:is([tip-position=right],
+[tip-position=inline-end]), tool-tip:is([tip-position=right],
[tip-position=inline-end]) {
inset-inline-start: calc(100% + 1.5rem + 1rem);
inset-block-end: 50%;
--tooltip-y: 50%;
}
-[role=tooltip]:is([tip-position=right],
+tooltip:is([tip-position=right],
+[tip-position=inline-end])::after, tool-tip:is([tip-position=right],
[tip-position=inline-end])::after {
--tooltip-pointer: conic-gradient(from 60deg at left, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) left/50% 100% no-repeat;
inset-inline-start: -1rem;
-webkit-border-start: 1rem solid transparent;
border-inline-start: 1rem solid transparent;
}
-[role=tooltip]:is([tip-position=bottom],
+tooltip:is([tip-position=bottom],
+[tip-position=block-end]), tool-tip:is([tip-position=bottom],
[tip-position=block-end]) {
inset-inline-start: 50%;
inset-block-start: calc(100% + 0.75rem + 1rem);
--tooltip-x: calc(50% * -1);
}
-[role=tooltip]:is([tip-position=bottom],
+tooltip:is([tip-position=bottom],
+[tip-position=block-end])::after, tool-tip:is([tip-position=bottom],
[tip-position=block-end])::after {
--tooltip-pointer: conic-gradient(from 150deg at top, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) top/100% 50% no-repeat;
inset-block-start: -1rem;
-webkit-border-before: 1rem solid transparent;
border-block-start: 1rem solid transparent;
}
-[role=tooltip]:is([tip-position=left],
+tooltip:is([tip-position=left],
+[tip-position=inline-start]), tool-tip:is([tip-position=left],
[tip-position=inline-start]) {
inset-inline-end: calc(100% + 1.5rem + 1rem);
inset-block-end: 50%;
--tooltip-y: 50%;
}
-[role=tooltip]:is([tip-position=left],
+tooltip:is([tip-position=left],
+[tip-position=inline-start])::after, tool-tip:is([tip-position=left],
[tip-position=inline-start])::after {
--tooltip-pointer: conic-gradient(from -120deg at right, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) right/50% 100% no-repeat;
inset-inline-end: -1rem;
@@ -155,21 +211,21 @@
border-inline-end: 1rem solid transparent;
}
@media (prefers-color-scheme: dark) {
- [role=tooltip] {
+ tooltip, tool-tip {
background: #1f2127;
color: #fff;
-webkit-filter: drop-shadow(0 3px 3px hsla(0, 0%, 0%, 0.5)) drop-shadow(0 12px 12px hsla(0, 0%, 0%, 0.5));
filter: drop-shadow(0 3px 3px hsla(0, 0%, 0%, 0.5)) drop-shadow(0 12px 12px hsla(0, 0%, 0%, 0.5));
}
- [role=tooltip]::after {
+ tooltip::after, tool-tip::after {
background: #1f2127;
}
}
-:has(> [role=tooltip]) {
+:has(> tooltip), :has(> tool-tip) {
position: relative;
}
-:has(> [role=tooltip]):is(:hover, :focus-visible, :active) > [role=tooltip] {
+:has(> tooltip):is(:hover, :focus-visible, :active) > tool-tip, :has(> tooltip):is(:hover, :focus-visible, :active) > tooltip, :has(> tool-tip):is(:hover, :focus-visible, :active) > tool-tip, :has(> tool-tip):is(:hover, :focus-visible, :active) > tooltip {
display: block;
opacity: 1;
-webkit-transition-delay: 300ms;
@@ -177,16 +233,20 @@
}
@media (prefers-reduced-motion: no-preference) {
- :has(> [role=tooltip]:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tooltip {
--tooltip-y: 3px;
}
- :has(> [role=tooltip]:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tooltip {
--tooltip-x: calc(-1 * -3px * -1);
}
- :has(> [role=tooltip]:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tooltip {
--tooltip-y: -3px;
}
- :has(> [role=tooltip]:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tooltip {
--tooltip-x: calc(-1 * 3px * -1);
}
}
@@ -221,7 +281,7 @@ $tooltip-pointer-top: conic-gradient(from 150deg at top, rgba(0, 0, 0, 0), #000
*/
@mixin tooltip {
- [role="tooltip"] {
+ tooltip, tool-tip {
background: $tooltip-light-background;
border-radius: $tooltip-border-radius;
color: $tooltip-light-foreground;
@@ -346,9 +406,10 @@ $tooltip-pointer-top: conic-gradient(from 150deg at top, rgba(0, 0, 0, 0), #000
}
}
- :has(> [role="tooltip"]) {
+ :has(> tooltip), :has(> tool-tip) {
position: relative;
- &:is(:hover, :focus-visible, :active) > [role="tooltip"] {
+ &:is(:hover, :focus-visible, :active) > tool-tip,
+ &:is(:hover, :focus-visible, :active) > tooltip {
display: block;
opacity: 1;
transition-delay: 300ms;
@@ -356,20 +417,20 @@ $tooltip-pointer-top: conic-gradient(from 150deg at top, rgba(0, 0, 0, 0), #000
}
@media (prefers-reduced-motion: no-preference) {
-
- :has(> [role="tooltip"]:is([tip-position="top"], [tip-position="block-start"], :not([tip-position]))):not(:hover):not(:active) [role="tooltip"] {
+ :has(> tool-tip:is([tip-position="top"], [tip-position="block-start"], :not([tip-position]))):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position="top"], [tip-position="block-start"], :not([tip-position]))):not(:hover):not(:active) tooltip {
--tooltip-y: 3px;
}
-
- :has(> [role="tooltip"]:is([tip-position="right"], [tip-position="inline-end"])):not(:hover):not(:active) [role="tooltip"] {
+ :has(> tool-tip:is([tip-position="right"], [tip-position="inline-end"])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position="right"], [tip-position="inline-end"])):not(:hover):not(:active) tooltip {
--tooltip-x: calc(-1 * -3px * -1);
}
-
- :has(> [role="tooltip"]:is([tip-position="bottom"], [tip-position="block-end"])):not(:hover):not(:active) [role="tooltip"] {
+ :has(> tool-tip:is([tip-position="bottom"], [tip-position="block-end"])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position="bottom"], [tip-position="block-end"])):not(:hover):not(:active) tooltip {
--tooltip-y: -3px;
}
-
- :has(> [role="tooltip"]:is([tip-position="left"], [tip-position="inline-start"])):not(:hover):not(:active) [role="tooltip"] {
+ :has(> tool-tip:is([tip-position="left"], [tip-position="inline-start"])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position="left"], [tip-position="inline-start"])):not(:hover):not(:active) tooltip {
--tooltip-x: calc(-1 * 3px * -1);
}
diff --git a/src/pg/core/_colour-samples.pug b/src/pg/core/_colour-samples.pug
index 4cab4c1..c525f50 100644
--- a/src/pg/core/_colour-samples.pug
+++ b/src/pg/core/_colour-samples.pug
@@ -216,7 +216,7 @@ mixin colour-samples(colors, theid)
- for ( var ii = 0; ii < colors[i].grad.l.length; ++ii ) {
color-pill(data-hex= color( colors[i].grad.l[ii].c, "hex") data-rgb= color(colors[i].grad.l[ii].c, "rgb") data-token= "--" + colorpfx + "-" + colors[i].grad.l[ii].n)
span(style="background-color: " + colors[i].grad.l[ii].c )
- tooltip.tooltip-tc.color-accessibility(role="tooltip" inert tip-position="bottom")
+ div.tooltip-tc.color-accessibility(role="tooltip" inert tip-position="bottom")
+accessibility-info(color(colors[i].grad.l[ii].c, "rgb"))
if colors[i].grad.l[ii].d
span #{colors[i].grad.l[ii].d}
@@ -228,7 +228,7 @@ mixin colour-samples(colors, theid)
- for ( var ii = 0; ii < colors[i].grad.d.length; ++ii ) {
color-pill(data-hex= color(colors[i].grad.d[ii].c, "hex") data-rgb= color(colors[i].grad.d[ii].c, "rgb") data-token= "--" + colorpfx + "-" + colors[i].grad.d[ii].n)
span(style="background-color: " + colors[i].grad.d[ii].c )
- tooltip.tooltip-tc.color-accessibility(role="tooltip" inert tip-position="bottom")
+ div.tooltip-tc.color-accessibility(role="tooltip" inert tip-position="bottom")
+accessibility-info(color(colors[i].grad.d[ii].c, "rgb"))
if colors[i].grad.d[ii].d
span #{colors[i].grad.d[ii].d}
diff --git a/src/pg/core/_master-index.pug b/src/pg/core/_master-index.pug
index 4e39ec9..2f4d3df 100644
--- a/src/pg/core/_master-index.pug
+++ b/src/pg/core/_master-index.pug
@@ -76,12 +76,10 @@ html(lang= lang )
block header
div.container
- block body-top
main#main
h1= site
each category in content
+show-content(category, "")
- block body-bottom
block footer
script(src="assets/scaffolding-min.js")
diff --git a/src/pg/patterns/core/tabs/_tabs.scss b/src/pg/patterns/core/tabs/_tabs.scss
index 08487b8..8136f5d 100644
--- a/src/pg/patterns/core/tabs/_tabs.scss
+++ b/src/pg/patterns/core/tabs/_tabs.scss
@@ -13,9 +13,8 @@ $tab-notselected-text: #000 !default;
margin: 2rem 0 1rem 0;
[role="tablist"] li.selected {
- background-color: var(--colour-green);
- color: var(--colour-white);
-
+ background-color: var(--color-blue);
+ color: var(--color-white);
}
> ul,
diff --git a/src/pg/patterns/core/tabs/index.pug b/src/pg/patterns/core/tabs/index.pug
index 3d723b1..6f79313 100644
--- a/src/pg/patterns/core/tabs/index.pug
+++ b/src/pg/patterns/core/tabs/index.pug
@@ -53,5 +53,4 @@ block content
tabs.init();
+h(4)
pre.language-js
- include _tabs.js
-
+ include _tabs.js
\ No newline at end of file
diff --git a/src/pg/patterns/core/tabs/tabs.css b/src/pg/patterns/core/tabs/tabs.css
index 1df61a1..00c3fca 100644
--- a/src/pg/patterns/core/tabs/tabs.css
+++ b/src/pg/patterns/core/tabs/tabs.css
@@ -2,8 +2,8 @@ tabset, .tab-group {
margin: 2rem 0 1rem 0;
}
tabset [role=tablist] li.selected, .tab-group [role=tablist] li.selected {
- background-color: var(--colour-green);
- color: var(--colour-white);
+ background-color: var(--color-blue);
+ color: var(--color-white);
}
tabset > ul,
tabset .tab-scroll > ul, .tab-group > ul,
diff --git a/src/pg/patterns/core/tooltip/tooltip.css b/src/pg/patterns/core/tooltip/tooltip.css
index 75bbf5b..8f727e8 100644
--- a/src/pg/patterns/core/tooltip/tooltip.css
+++ b/src/pg/patterns/core/tooltip/tooltip.css
@@ -4,7 +4,7 @@
- bottom / block-end
- left / inline-start
*/
-[role=tooltip] {
+tooltip, tool-tip {
background: #fff;
border-radius: 0.5rem;
color: #000;
@@ -38,7 +38,7 @@
will-change: filter;
z-index: 10;
}
-[role=tooltip]::before {
+tooltip::before, tool-tip::before {
clip-path: inset(50%);
clip: rect(1px, 1px, 1px, 1px);
content: "; Has tooltip: ";
@@ -49,7 +49,7 @@
position: absolute;
width: 1px;
}
-[role=tooltip]::after {
+tooltip::after, tool-tip::after {
background: #fff;
content: "";
inset: 0;
@@ -58,21 +58,29 @@
position: absolute;
z-index: -1;
}
-[role=tooltip]:is([tip-position=top],
+tooltip:is([tip-position=top],
+[tip-position=block-start],
+:not([tip-position]),
+[tip-position=bottom],
+[tip-position=block-end]), tool-tip:is([tip-position=top],
[tip-position=block-start],
:not([tip-position]),
[tip-position=bottom],
[tip-position=block-end]) {
text-align: center;
}
-[role=tooltip]:is([tip-position=top],
+tooltip:is([tip-position=top],
+[tip-position=block-start],
+:not([tip-position])), tool-tip:is([tip-position=top],
[tip-position=block-start],
:not([tip-position])) {
inset-inline-start: 50%;
inset-block-end: calc(100% + 0.75rem + 1rem);
--tooltip-x: calc(50% * -1);
}
-[role=tooltip]:is([tip-position=top],
+tooltip:is([tip-position=top],
+[tip-position=block-start],
+:not([tip-position]))::after, tool-tip:is([tip-position=top],
[tip-position=block-start],
:not([tip-position]))::after {
--tooltip-pointer: conic-gradient(from -30deg at bottom, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) bottom/100% 50% no-repeat;
@@ -80,39 +88,45 @@
-webkit-border-after: 1rem solid transparent;
border-block-end: 1rem solid transparent;
}
-[role=tooltip]:is([tip-position=right],
+tooltip:is([tip-position=right],
+[tip-position=inline-end]), tool-tip:is([tip-position=right],
[tip-position=inline-end]) {
inset-inline-start: calc(100% + 1.5rem + 1rem);
inset-block-end: 50%;
--tooltip-y: 50%;
}
-[role=tooltip]:is([tip-position=right],
+tooltip:is([tip-position=right],
+[tip-position=inline-end])::after, tool-tip:is([tip-position=right],
[tip-position=inline-end])::after {
--tooltip-pointer: conic-gradient(from 60deg at left, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) left/50% 100% no-repeat;
inset-inline-start: -1rem;
-webkit-border-start: 1rem solid transparent;
border-inline-start: 1rem solid transparent;
}
-[role=tooltip]:is([tip-position=bottom],
+tooltip:is([tip-position=bottom],
+[tip-position=block-end]), tool-tip:is([tip-position=bottom],
[tip-position=block-end]) {
inset-inline-start: 50%;
inset-block-start: calc(100% + 0.75rem + 1rem);
--tooltip-x: calc(50% * -1);
}
-[role=tooltip]:is([tip-position=bottom],
+tooltip:is([tip-position=bottom],
+[tip-position=block-end])::after, tool-tip:is([tip-position=bottom],
[tip-position=block-end])::after {
--tooltip-pointer: conic-gradient(from 150deg at top, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) top/100% 50% no-repeat;
inset-block-start: -1rem;
-webkit-border-before: 1rem solid transparent;
border-block-start: 1rem solid transparent;
}
-[role=tooltip]:is([tip-position=left],
+tooltip:is([tip-position=left],
+[tip-position=inline-start]), tool-tip:is([tip-position=left],
[tip-position=inline-start]) {
inset-inline-end: calc(100% + 1.5rem + 1rem);
inset-block-end: 50%;
--tooltip-y: 50%;
}
-[role=tooltip]:is([tip-position=left],
+tooltip:is([tip-position=left],
+[tip-position=inline-start])::after, tool-tip:is([tip-position=left],
[tip-position=inline-start])::after {
--tooltip-pointer: conic-gradient(from -120deg at right, rgba(0, 0, 0, 0), #000 1deg 60deg, rgba(0, 0, 0, 0) 61deg) right/50% 100% no-repeat;
inset-inline-end: -1rem;
@@ -120,21 +134,21 @@
border-inline-end: 1rem solid transparent;
}
@media (prefers-color-scheme: dark) {
- [role=tooltip] {
+ tooltip, tool-tip {
background: #1f2127;
color: #fff;
-webkit-filter: drop-shadow(0 3px 3px hsla(0, 0%, 0%, 0.5)) drop-shadow(0 12px 12px hsla(0, 0%, 0%, 0.5));
filter: drop-shadow(0 3px 3px hsla(0, 0%, 0%, 0.5)) drop-shadow(0 12px 12px hsla(0, 0%, 0%, 0.5));
}
- [role=tooltip]::after {
+ tooltip::after, tool-tip::after {
background: #1f2127;
}
}
-:has(> [role=tooltip]) {
+:has(> tooltip), :has(> tool-tip) {
position: relative;
}
-:has(> [role=tooltip]):is(:hover, :focus-visible, :active) > [role=tooltip] {
+:has(> tooltip):is(:hover, :focus-visible, :active) > tool-tip, :has(> tooltip):is(:hover, :focus-visible, :active) > tooltip, :has(> tool-tip):is(:hover, :focus-visible, :active) > tool-tip, :has(> tool-tip):is(:hover, :focus-visible, :active) > tooltip {
display: block;
opacity: 1;
-webkit-transition-delay: 300ms;
@@ -142,16 +156,20 @@
}
@media (prefers-reduced-motion: no-preference) {
- :has(> [role=tooltip]:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=top], [tip-position=block-start], :not([tip-position]))):not(:hover):not(:active) tooltip {
--tooltip-y: 3px;
}
- :has(> [role=tooltip]:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=right], [tip-position=inline-end])):not(:hover):not(:active) tooltip {
--tooltip-x: calc(-1 * -3px * -1);
}
- :has(> [role=tooltip]:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=bottom], [tip-position=block-end])):not(:hover):not(:active) tooltip {
--tooltip-y: -3px;
}
- :has(> [role=tooltip]:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) [role=tooltip] {
+ :has(> tool-tip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tool-tip,
+ :has(> tooltip:is([tip-position=left], [tip-position=inline-start])):not(:hover):not(:active) tooltip {
--tooltip-x: calc(-1 * 3px * -1);
}
}
\ No newline at end of file