Skip to content

Commit ef21004

Browse files
committed
feat: optional parent selector
1 parent 9ea68c4 commit ef21004

32 files changed

+295
-277
lines changed

scss/_settings.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ $enable-transitions: true !default;
3838
// Enable overriding with !important
3939
$enable-important: true !default;
4040

41+
// Optional parent selector
42+
// If defined, all HTML tags are wrapped with this selector
43+
// :root is not wrapped
44+
$parent-selector: "" !default;
45+
4146
// Breakpoints, viewports and root font size
4247
$breakpoints: () !default;
4348
$breakpoints: map.deep-merge(

scss/components/_accordion.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Accordion (<details>)
77
*/
88

9-
details {
9+
#{$parent-selector} details {
1010
display: block;
1111
margin-bottom: var(#{$css-var-prefix}spacing);
1212

@@ -102,7 +102,7 @@
102102
}
103103

104104
[dir="rtl"] {
105-
details {
105+
#{$parent-selector} details {
106106
summary {
107107
text-align: right;
108108

scss/components/_card.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Card (<article>)
77
*/
88

9-
article {
9+
#{$parent-selector} article {
1010
margin-bottom: var(#{$css-var-prefix}block-spacing-vertical);
1111
padding: var(#{$css-var-prefix}block-spacing-vertical)
1212
var(#{$css-var-prefix}block-spacing-horizontal);

scss/components/_dropdown.scss

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// Container
1010
// ––––––––––––––––––––
11-
details.dropdown {
11+
#{$parent-selector} details.dropdown {
1212
position: relative;
1313
border-bottom: none;
1414

@@ -38,15 +38,15 @@
3838
// Container type accordion
3939
// inside a nav
4040
// ––––––––––––––––––––
41-
nav details.dropdown {
41+
#{$parent-selector} nav details.dropdown {
4242
// Override height
4343
margin-bottom: 0;
4444
}
4545

4646
// Bouton as a select
4747
// inside container type accordion
4848
// ––––––––––––––––––––
49-
details.dropdown summary:not([role]) {
49+
#{$parent-selector} details.dropdown summary:not([role]) {
5050
height: calc(
5151
1rem *
5252
var(#{$css-var-prefix}line-height) +
@@ -122,7 +122,7 @@
122122

123123
// Dropdown inside a nav
124124
// ––––––––––––––––––––
125-
nav details.dropdown {
125+
#{$parent-selector} nav details.dropdown {
126126
display: inline;
127127
margin: calc(var(#{$css-var-prefix}nav-element-spacing-vertical) * -1) 0;
128128

@@ -146,7 +146,7 @@
146146

147147
// Submenu
148148
// ––––––––––––––––––––
149-
details.dropdown summary + ul {
149+
#{$parent-selector} details.dropdown summary + ul {
150150
display: flex;
151151
z-index: 99;
152152
position: absolute;
@@ -226,14 +226,14 @@
226226
// Button opened
227227
// inside container type accordion
228228
// ––––––––––––––––––––
229-
details.dropdown[open] summary {
229+
#{$parent-selector} details.dropdown[open] summary {
230230
margin-bottom: 0;
231231
}
232232

233233
// Menu opened
234234
// ––––––––––––––––––––
235235
// 1. Inside container type accordion
236-
details.dropdown[open] summary {
236+
#{$parent-selector} details.dropdown[open] summary {
237237
+ ul {
238238
transform: scaleY(1);
239239
opacity: 1;
@@ -249,7 +249,7 @@
249249
// Close for dropdown
250250
// inside container type accordion
251251
// ––––––––––––––––––––
252-
details.dropdown[open] summary {
252+
#{$parent-selector} details.dropdown[open] summary {
253253
&::before {
254254
display: block;
255255
z-index: 1;
@@ -264,7 +264,7 @@
264264
}
265265
// Label
266266
// ––––––––––––––––––––
267-
label > details.dropdown {
267+
#{$parent-selector} label > details.dropdown {
268268
margin-top: calc(var(#{$css-var-prefix}spacing) * 0.25);
269269
}
270270
}

scss/components/_group.scss

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
* Group ([role="group"], [role="search"])
77
*/
88

9-
form {
9+
#{$parent-selector} form {
1010
&[role="search"],
1111
&[role="group"] {
1212
width: 100%;
1313
}
1414
}
1515

16-
[role="search"] {
16+
#{$parent-selector} [role="search"] {
1717
> * {
1818
&:first-child {
1919
border-top-left-radius: 5rem;
@@ -27,8 +27,8 @@
2727
}
2828
}
2929

30-
[role="search"],
31-
[role="group"] {
30+
#{$parent-selector} [role="search"],
31+
#{$parent-selector} [role="group"] {
3232
display: inline-flex;
3333
position: relative;
3434
margin-bottom: var(#{$css-var-prefix}spacing);

scss/components/_loading.scss

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
// Everything except form elements
10-
[aria-busy="true"]:not(input, select, textarea, html) {
10+
#{$parent-selector} [aria-busy="true"]:not(input, select, textarea, html) {
1111
white-space: nowrap;
1212

1313
&::before {
@@ -33,12 +33,12 @@
3333
}
3434

3535
// Buttons and links
36-
button,
37-
[type="submit"],
38-
[type="button"],
39-
[type="reset"],
40-
[role="button"],
41-
a {
36+
#{$parent-selector} button,
37+
#{$parent-selector} [type="submit"],
38+
#{$parent-selector} [type="button"],
39+
#{$parent-selector} [type="reset"],
40+
#{$parent-selector} [role="button"],
41+
#{$parent-selector} a {
4242
&[aria-busy="true"] {
4343
pointer-events: none;
4444
}

scss/components/_modal.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#{$css-var-prefix}scrollbar-width: 0px;
1111
}
1212

13-
dialog {
13+
#{$parent-selector} dialog {
1414
display: flex;
1515
z-index: 999;
1616
position: fixed;

scss/components/_nav.scss

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
// Pico
1919
// ––––––––––––––––––––
2020

21-
nav,
22-
nav ul {
21+
#{$parent-selector} nav,
22+
#{$parent-selector} nav ul {
2323
display: flex;
2424
}
2525

26-
nav {
26+
#{$parent-selector} nav {
2727
justify-content: space-between;
2828

2929
ol,
@@ -118,7 +118,7 @@
118118
}
119119

120120
// Vertical Nav
121-
aside {
121+
#{$parent-selector} aside {
122122
nav,
123123
ol,
124124
ul,
@@ -143,7 +143,7 @@
143143

144144
// Breadcrumb RTL
145145
[dir="rtl"] {
146-
nav {
146+
#{$parent-selector} nav {
147147
&[aria-label="breadcrumb"] {
148148
& ul li {
149149
&:not(:last-child) {

scss/components/_progress.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313

1414
// 1. Add the correct display in Edge 18- and IE
1515
// 2. Add the correct vertical alignment in Chrome, Edge, and Firefox
16-
progress {
16+
#{$parent-selector} progress {
1717
display: inline-block; // 1
1818
vertical-align: baseline; // 2
1919
}
2020

2121
// Pico
2222
// ––––––––––––––––––––
2323

24-
progress {
24+
#{$parent-selector} progress {
2525
// Reset the default appearance
2626
-webkit-appearance: none;
2727
-moz-appearance: none;
@@ -84,7 +84,7 @@
8484

8585
[dir="rtl"] {
8686
@media (prefers-reduced-motion: no-preference) {
87-
progress:indeterminate {
87+
#{$parent-selector} progress:indeterminate {
8888
animation-direction: reverse;
8989
}
9090
}

scss/components/_tooltip.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Tooltip ([data-tooltip])
77
*/
88

9-
[data-tooltip] {
9+
#{$parent-selector} [data-tooltip] {
1010
position: relative;
1111

1212
&:not(a, button, input) {

0 commit comments

Comments
 (0)