@leftium/nimble.css 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- package/dist/nimble-base.css +1 -12
- package/dist/nimble-base.min.css +1 -1
- package/dist/nimble-core.css +695 -690
- package/dist/nimble-core.min.css +1 -1
- package/dist/nimble.css +779 -774
- package/dist/nimble.min.css +1 -1
- package/no-nimble.js +111 -0
- package/package.json +4 -2
- package/src/_config.scss +1 -1
- package/src/_document.scss +8 -8
- package/src/_grid-columns.scss +23 -23
- package/src/_layout-utilities.scss +38 -12
- package/src/_typography.scss +1 -16
- package/src/nimble-core.scss +8 -0
- package/src/nimble.scss +8 -0
package/dist/nimble.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer nimble.reset{:where(:not(progress)),:where(),:where(){box-sizing:border-box;background-repeat:no-repeat}:where(html){-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}:where(body){margin:0}:where(h1){margin-block:.67em;font-size:2em}:where(hr){height:0;color:inherit}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(pre){font-family:monospace;font-size:1em}:where(abbr[title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace;font-size:1em}:where(small){font-size:80%}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(iframe){border-style:none}:where(table){border-collapse:collapse;text-indent:0;border-color:currentColor}:where(button,input,select,textarea){font:inherit;letter-spacing:inherit}:where(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){resize:vertical;overflow:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(){-webkit-appearance:none}:where(),:where(){height:auto}:where(){-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(a,area,button,input,label,select,summary,textarea,[tabindex]){touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where([aria-busy=true]){cursor:progress}:where([aria-disabled=true],[disabled]){cursor:not-allowed}@media (prefers-reduced-motion:reduce){:where(*),:where(),:where(){scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer nimble.base{:root{color-scheme:light dark;--nc-surface-hue:250;--nc-surface-1:light-dark(oklch(.985 .002 var(--nc-surface-hue)),oklch(.17 .005 calc(var(--nc-surface-hue) + 10)));--nc-surface-2:light-dark(oklch(.955 .002 var(--nc-surface-hue)),oklch(.2 .005 calc(var(--nc-surface-hue) + 10)));--nc-surface-3:light-dark(oklch(.925 .002 var(--nc-surface-hue)),oklch(.23 .005 calc(var(--nc-surface-hue) + 10)));--nc-surface-4:light-dark(oklch(.885 .002 var(--nc-surface-hue)),oklch(.27 .005 calc(var(--nc-surface-hue) + 10)));--nc-text:light-dark(oklch(.28 .005 var(--nc-surface-hue)),oklch(.86 .005 var(--nc-surface-hue)));--nc-border:light-dark(oklch(.83 .005 var(--nc-surface-hue)),oklch(.28 .005 calc(var(--nc-surface-hue) + 10)));--nc-primary:light-dark(oklch(50% .2 250),oklch(60% .2 250));--nc-primary-hover:light-dark(oklch(from var(--nc-primary) calc(l - .1) c h),oklch(from var(--nc-primary) calc(l + .1) c h));--nc-primary-focus:oklch(from var(--nc-primary) l c h / .4);--nc-primary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-secondary:light-dark(oklch(45% .05 250),oklch(60% .05 250));--nc-secondary-hover:light-dark(oklch(from var(--nc-secondary) calc(l - .1) c h),oklch(from var(--nc-secondary) calc(l + .1) c h));--nc-secondary-focus:oklch(from var(--nc-secondary) l c h / .3);--nc-secondary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-valid:light-dark(oklch(52% .17 145),oklch(65% .2 145));--nc-invalid:light-dark(oklch(55% .22 25),oklch(65% .22 25));--nc-font-sans:system-ui, sans-serif;--nc-font-mono:ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--nc-spacing:1rem;--nc-radius:.25rem;--nc-content-width:60ch;--nc-content-shadow-gap:1rem;--nc-content-shadow:0 0 .15rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .02),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .015)), 0 0 .3rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .03),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .02)), 0 0 .75rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .04),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .025)), 0 0 1.35rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .04),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .03)), 0 0 2.5rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .05),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .035)), 0 0 6rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .06),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .04)), 0 0 0rem .0625rem light-dark(oklch(.55 .01 var(--nc-surface-hue) / .015),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .01))}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}html{font-family:var(--nc-font-sans);color:var(--nc-text);background-color:var(--nc-surface-1);scrollbar-gutter:stable;font-size:100%;line-height:1.5}body{grid-template-columns:1fr var(--nc-content-shadow-gap) min(var(--nc-content-width), calc(100% - 2 * var(--nc-spacing) - 2 * var(--nc-content-shadow-gap))) var(--nc-content-shadow-gap) 1fr;min-height:100dvh;padding-block:var(--nc-spacing);display:grid;position:relative}::selection{background-color:var(--nc-primary-focus);color:var(--nc-text)}body>*,body>[style*="display: contents"]>*{grid-column:3;min-width:0}@media (width>=720px){body:before{content:"";width:min(calc(var(--nc-content-width) + 2 * var(--nc-content-shadow-gap)), calc(100% - 2 * var(--nc-spacing)));box-shadow:var(--nc-content-shadow);pointer-events:none;z-index:-1;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}}}@layer nimble.utilities{.container{max-width:var(--nc-content-width);padding-inline:var(--nc-spacing);margin-inline:auto}.fluid{max-width:none;padding-inline:var(--nc-spacing);display:block}.full-bleed{box-shadow:none;grid-column:1/-1;position:relative}.grid{gap:var(--nc-spacing);margin-bottom:var(--nc-spacing);grid-template-columns:1fr;display:grid}@media (width>=720px){.grid{grid-template-columns:repeat(auto-fit,minmax(0%,1fr))}}.wide{box-shadow:none;width:100%;max-width:1200px;padding-inline:var(--nc-spacing);grid-column:1/-1;margin-inline:auto}}@media print{body{color:#000;background:#fff}a[href]:after{content:" (" attr(href) ")";color:#555;font-size:.85em}a[href^=\#]:after,a[href^=javascript\:]:after{content:none}pre,blockquote{page-break-inside:avoid}h2,h3,h4{page-break-after:avoid}img{max-width:100%!important}@page{margin:2cm}}@scope(:root) to (.no-nimble){@layer nimble.base{h1{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:2rem;font-weight:700;line-height:1.1}h2{margin-top:2rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.75rem;font-weight:700;line-height:1.15}h3{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.5rem;font-weight:700;line-height:1.2}h4{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.25rem;font-weight:700;line-height:1.3}h5{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.125rem;font-weight:700;line-height:1.4}h6{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1rem;font-weight:700;line-height:1.5}@media (width<=720px){h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.3rem}}p,ul,ol,dl,blockquote,pre,table,figure,form,fieldset{margin-top:0;margin-bottom:var(--nc-spacing)}body>:first-child,body>:first-child>:first-child{margin-top:0}body>:nth-last-child(1 of :not(script,style,dialog)),body>:nth-last-child(1 of :not(script,style,dialog))>:last-child{margin-bottom:0}ul,ol{padding-inline-start:1.5em}:where(li){margin-bottom:.25em}:where(li)>:where(ul,ol){margin-bottom:0}dt{font-weight:600}dd{margin-inline-start:1.5em;margin-bottom:.5em}blockquote{margin-block:var(--nc-spacing);padding:.25em var(--nc-spacing);border-inline-start:.25rem solid var(--nc-border);margin-inline:0;font-style:italic}:where(blockquote) footer,:where(blockquote) cite{color:color-mix(in oklch, var(--nc-text), transparent 40%);font-size:.9em;font-style:normal}hr{background-color:color-mix(in oklch, var(--nc-border), transparent 40%);height:1px;margin:var(--nc-spacing) 0;border:none}mark{color:light-dark(inherit,oklch(95% .01 85));background-color:light-dark(#fde68a,oklch(55% .12 85));border-radius:2px;padding:.1em .25em}address{font-style:normal}:where(a:not([role=button])){color:var(--nc-primary);text-underline-offset:.15em;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);transition:color .2s,text-decoration-color .2s}:where(a:not([role=button])):visited{color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310));-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310) 30%);text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310) 30%)}:where(a:not([role=button])):hover{color:var(--nc-primary-hover);-webkit-text-decoration-color:var(--nc-primary-hover);text-decoration-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]){--_btn-padding-v:.5em;--_btn-padding-h:1em;padding:var(--_btn-padding-v) var(--_btn-padding-h);background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;text-align:center;margin:0;margin-block-end:.25em;font-size:1rem;line-height:1.5;text-decoration:none;transition:background-color .2s,border-color .2s;display:inline-block}:where(button,[type=submit],[type=reset],[type=button],[role=button]):hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]):focus-visible{box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where([type=reset]){background-color:var(--nc-secondary);border-color:var(--nc-secondary);color:var(--nc-secondary-contrast)}:where([type=reset]):hover{background-color:var(--nc-secondary-hover);border-color:var(--nc-secondary-hover)}:where([type=reset]):focus-visible{box-shadow:0 0 0 2px var(--nc-secondary-focus)}:where(button,[type=submit],[type=reset],[type=button],[role=button]).inline{--_btn-padding-v:.05em;--_btn-padding-h:.4em;vertical-align:baseline;margin:.1em .15em;font-size:.875em}:where(button,[type=submit],[type=reset],[type=button],[role=button]):disabled{opacity:.5;cursor:not-allowed;pointer-events:none}:where([role=group]){margin-bottom:.25em;display:inline-flex}[role=group]>*{border-radius:0;margin:0;position:relative}[role=group]>*+*{--_divider:""}[role=group]>*+:before{content:var(--_divider);inset-inline-start:0;pointer-events:none;background:#ffffff4d;width:1px;position:absolute;top:20%;bottom:20%}[role=group]>:not(.secondary):not(.outline)+.secondary,[role=group]>.secondary+:not(.secondary):not(.outline),[role=group]>:not(.secondary):not(.outline)+.outline,[role=group]>.outline+:not(.secondary):not(.outline),[role=group]>.secondary+.outline,[role=group]>.outline+.secondary,[role=group]>input+*,[role=group]>select+*{--_divider:none}[role=group]>:first-child{border-start-start-radius:var(--nc-radius);border-end-start-radius:var(--nc-radius)}[role=group]>:last-child{border-start-end-radius:var(--nc-radius);border-end-end-radius:var(--nc-radius)}[role=group]:has(.outline):not(:has(>:not(.outline))){border:1px solid var(--nc-primary);border-radius:var(--nc-radius)}[role=group]:has(.outline):not(:has(>:not(.outline)))>.outline{border:none}[role=group]>.outline+.outline:before{background:var(--nc-primary)}[role=search] [role=group]>:first-child{border-start-start-radius:5rem;border-end-start-radius:5rem;padding-inline-start:1.25em}[role=search] [role=group]>:last-child{border-start-end-radius:5rem;border-end-end-radius:5rem;padding-inline-end:1.25em}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset]),select,textarea){--_input-bg:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);background-color:var(--_input-bg);border:1px solid var(--nc-border);border-radius:var(--nc-radius);min-height:calc(2.5em + 2px);color:var(--nc-text);font:inherit;padding:.5em .75em;font-size:1rem;transition:border-color .2s,box-shadow .2s}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset],[type=date],[type=month],[type=week],[type=time],[type=datetime-local]),select,textarea){width:100%;margin-bottom:var(--nc-spacing)}:where(p,div)>:where(input,select,textarea):nth-last-child(1 of :not(datalist,script,style)){margin-bottom:0}:where(input,select,textarea):focus-visible{border-color:var(--nc-primary);box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where(input:not([type=submit],[type=button],[type=reset]),select,textarea)+:where(small){margin-top:calc(var(--nc-spacing) * -.75);margin-bottom:var(--nc-spacing);color:color-mix(in oklch, var(--nc-text), transparent 40%);font-size:.875em;display:block}:where(input,select,textarea)[aria-invalid=false]{border-color:var(--nc-valid)}:where(input,select,textarea)[aria-invalid=true]{border-color:var(--nc-invalid)}:where(input:not([type=submit],[type=button],[type=reset]),select,textarea)[aria-invalid=false]+:where(small){color:var(--nc-valid)}:where(input:not([type=submit],[type=button],[type=reset]),select,textarea)[aria-invalid=true]+:where(small){color:var(--nc-invalid)}:where(label){margin-bottom:.25em;display:block}:where(label:has(+input,+select,+textarea)){font-weight:600}:where(label:has(+[type=file],+[type=range])){margin-bottom:.5em}:where(fieldset){border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:var(--nc-spacing);min-width:0;max-width:100%}:where(fieldset)>:nth-last-child(1 of :not(datalist,script,style)),:where(fieldset)>:nth-last-child(1 of :not(datalist,script,style))>:nth-last-child(1 of :not(datalist,script,style)){margin-bottom:0}:where(legend){padding-inline:.25em;font-weight:600}:where([type=checkbox],[type=radio]){accent-color:var(--nc-primary);width:1.125em;height:1.125em;margin:0}:where(label:has([type=checkbox],[type=radio])){align-items:center;gap:.35em;margin-bottom:.5em;display:flex}:where(label:has([type=checkbox],[type=radio]):last-child){margin-bottom:0}:where([type=search]){border-radius:5rem;padding-inline:1.25em}:where([type=range]){accent-color:var(--nc-primary);width:100%;margin-bottom:var(--nc-spacing)}:where(input[list]){width:auto}:where([type=file]){color:var(--nc-text);font:inherit;cursor:pointer;max-width:100%;margin-bottom:var(--nc-spacing)}:where([type=file])::file-selector-button{margin-right:.75em;background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;margin-inline-end:.75em;padding:.5em 1em;transition:background-color .2s,border-color .2s}:where([type=file])::file-selector-button:hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where([type=date],[type=month],[type=week],[type=time],[type=datetime-local]){min-width:10em;margin-bottom:var(--nc-spacing)}:where([type=color]){--_color-size:calc(1em * 1.5 + 1em + 2px);margin-bottom:var(--nc-spacing);--_color-pad:.25em;height:var(--_color-size);width:calc((var(--_color-size) - 2 * var(--_color-pad)) * 1.618 + 2 * var(--_color-pad));padding:var(--_color-pad);background-color:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);border:1px solid var(--nc-border);border-radius:var(--nc-radius);cursor:pointer}:where([type=color])::-webkit-color-swatch-wrapper{padding:0}:where([type=color])::-webkit-color-swatch{border-radius:calc(var(--nc-radius) * .5);border:none}:where(label:has([type=checkbox][role=switch])){align-items:center;gap:.5em;display:flex}:where([type=checkbox][role=switch]){appearance:none;background-color:var(--nc-border);cursor:pointer;border-radius:1em;flex-shrink:0;width:2.5em;height:1.25em;margin:0;transition:background-color .2s;position:relative}:where([type=checkbox][role=switch]):before{content:"";background-color:#fff;border-radius:50%;width:calc(1.25em - 4px);height:calc(1.25em - 4px);transition:transform .2s;position:absolute;top:2px;left:2px}:where([type=checkbox][role=switch]):checked{background-color:var(--nc-primary)}:where([type=checkbox][role=switch]):checked:before{transform:translate(1.25em)}:where(table){border-collapse:collapse;width:100%}:where(th,td){border-bottom:1px solid color-mix(in oklch, var(--nc-border), transparent 40%);text-align:start;padding:.5em .75em}:where(thead th,thead td){background-color:var(--nc-surface-2);text-wrap:balance;border-bottom-width:2px;font-weight:600}:where(figure:has(table)){overflow-x:auto}:where(code,kbd,samp){font-family:var(--nc-font-mono);background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:.15em .35em;font-size:.875em}:where(pre){background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:var(--nc-spacing);overflow-x:auto}:where(pre code){font-size:inherit;background:0 0;padding:0}:where(kbd){border:1px solid var(--nc-border);border-bottom-width:2px}:where(img,video,canvas,svg){max-width:100%;height:auto}:where(figure){margin:0}:where(figcaption){color:color-mix(in oklch, var(--nc-text), transparent 40%);margin-top:.5em;font-size:.9em}:where(article){background-color:var(--nc-surface-1);border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:var(--nc-spacing);margin-bottom:var(--nc-spacing)}:where(article>header),:where(article>footer){background-color:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);padding:var(--nc-spacing)}:where(article>header){margin:calc(var(--nc-spacing) * -1) calc(var(--nc-spacing) * -1) var(--nc-spacing);border-bottom:1px solid var(--nc-border);border-radius:var(--nc-radius) var(--nc-radius) 0 0}:where(article>footer){margin:var(--nc-spacing) calc(var(--nc-spacing) * -1) calc(var(--nc-spacing) * -1);border-top:1px solid var(--nc-border);border-radius:0 0 var(--nc-radius) var(--nc-radius)}:where(article)>:last-child:not(footer),:where(article>header,article>footer)>:last-child{margin-bottom:0}:where(article>header,article>footer)>h1,:where(article>header,article>footer)>h2,:where(article>header,article>footer)>h3,:where(article>header,article>footer)>h4,:where(article>header,article>footer)>h5,:where(article>header,article>footer)>h6{margin-top:0;margin-bottom:0}:where(details){border:1px solid var(--nc-border);border-radius:var(--nc-radius);margin-bottom:.5em;padding:0 1em}:where(summary){cursor:pointer;margin:0 -1em;padding:.5em 1em;font-weight:600;list-style-type:"▶ "}:where(details[open]>summary){list-style-type:"▼ "}:where(summary[role=button]){width:auto;margin:0 -1em;list-style:none;display:block}:where(summary[role=button]):before{content:"▶ ";vertical-align:middle;font-size:.75em;transition:transform .2s;display:inline-block}:where(details[open]>summary[role=button]):before{transform:rotate(90deg)}:where(details[open]){padding-bottom:.5em}:where(dialog){background-color:var(--nc-surface-4);border:1px solid var(--nc-border);border-radius:var(--nc-radius);max-width:min(90vw,40rem);max-height:85vh;padding:var(--nc-spacing)}:where(dialog[open]){margin:auto;position:fixed;inset:0}:where(dialog:has(>article)){background:0 0;border:none;padding:0}:where(dialog>article){margin-bottom:0}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;animation:.2s nc-backdrop-in}@keyframes nc-backdrop-in{0%{opacity:0}}:where(progress){width:100%}:where(meter){appearance:none;border-radius:var(--nc-radius);background-color:var(--nc-surface-3);border:0;width:100%;height:.5rem;overflow:hidden}:where(meter)::-webkit-meter-bar{border-radius:var(--nc-radius);background-color:var(--nc-surface-3);border:0;height:.5rem}:where(meter)::-webkit-meter-optimum-value{background-color:var(--nc-valid);border-radius:var(--nc-radius)}:where(meter)::-webkit-meter-suboptimum-value{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(meter)::-webkit-meter-even-less-good-value{background-color:var(--nc-invalid);border-radius:var(--nc-radius)}:where(meter)::-moz-meter-bar{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(meter):-moz-meter-optimum::-moz-meter-bar{background-color:var(--nc-valid)}:where(meter):-moz-meter-sub-optimum::-moz-meter-bar{background-color:var(--nc-primary)}:where(meter):-moz-meter-sub-sub-optimum::-moz-meter-bar{background-color:var(--nc-invalid)}@supports (appearance:base-select){:where(select){appearance:base-select}:where(select)::picker(select){appearance:base-select}:where(select)::picker-icon{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6 6-6'/%3E%3C/svg%3E");transition:rotate .4s}:where(select):open::picker-icon{rotate:180deg}:where(select)::picker(select){position-area:block-end;position-try-order:normal;position-try-fallbacks:flip-block;border:1px solid var(--nc-border);border-radius:var(--nc-radius);background-color:var(--nc-surface-1);opacity:0;transition:opacity .2s, overlay .2s allow-discrete, display .2s allow-discrete;padding:.25em}:where(select):open::picker(select){opacity:1}@starting-style{:where(select):open::picker(select){opacity:0}}:where(select) option{border-radius:var(--nc-radius);padding:.5em .75em;transition:background-color .15s}:where(select) option:hover{background-color:var(--nc-surface-2)}:where(select) option:checked{font-weight:600}}}@layer nimble.utilities{.secondary:not(a:not([role=button])){background-color:var(--nc-secondary);border-color:var(--nc-secondary);color:var(--nc-secondary-contrast)}.secondary:not(a:not([role=button])):hover{background-color:var(--nc-secondary-hover);border-color:var(--nc-secondary-hover)}.secondary:not(a:not([role=button])):focus-visible{box-shadow:0 0 0 2px var(--nc-secondary-focus)}a:not([role=button]).secondary{color:var(--nc-secondary);-webkit-text-decoration-color:color-mix(in oklch, var(--nc-secondary), transparent 50%);text-decoration-color:color-mix(in oklch, var(--nc-secondary), transparent 50%)}a:not([role=button]).secondary:hover{color:var(--nc-secondary-hover);-webkit-text-decoration-color:var(--nc-secondary-hover);text-decoration-color:var(--nc-secondary-hover)}.outline:not(a:not([role=button])){color:var(--nc-primary);background-color:#0000}.outline:not(a:not([role=button])):hover{background-color:var(--nc-primary-focus);color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}.striped :where(tbody tr:nth-child(2n)){background-color:var(--nc-surface-2)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overflow-auto{overflow:auto}}[type=date],[type=month],[type=week],[type=time],[type=datetime-local]{appearance:none}details :last-child:last-child{margin-bottom:0}@supports selector(details::details-content){details::details-content{transition:opacity .3s ease, content-visibility .3s ease allow-discrete;opacity:0}details[open]::details-content{opacity:1}@supports (interpolate-size:allow-keywords){details{interpolate-size:allow-keywords}details::details-content{transition:height .3s ease, opacity .3s ease, content-visibility .3s ease allow-discrete;height:0;overflow:clip}details[open]::details-content{height:auto}}}}
|
|
1
|
+
@layer nimble.reset{:where(:not(progress)),:where(),:where(){box-sizing:border-box;background-repeat:no-repeat}:where(html){-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}:where(body){margin:0}:where(h1){margin-block:.67em;font-size:2em}:where(hr){height:0;color:inherit}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(pre){font-family:monospace;font-size:1em}:where(abbr[title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace;font-size:1em}:where(small){font-size:80%}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(iframe){border-style:none}:where(table){border-collapse:collapse;text-indent:0;border-color:currentColor}:where(button,input,select,textarea){font:inherit;letter-spacing:inherit}:where(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){resize:vertical;overflow:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(){-webkit-appearance:none}:where(),:where(){height:auto}:where(){-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(a,area,button,input,label,select,summary,textarea,[tabindex]){touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where([aria-busy=true]){cursor:progress}:where([aria-disabled=true],[disabled]){cursor:not-allowed}@media (prefers-reduced-motion:reduce){:where(*),:where(),:where(){scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer nimble.base{:root{color-scheme:light dark;--nc-surface-hue:250;--nc-surface-1:light-dark(oklch(.985 .002 var(--nc-surface-hue)),oklch(.17 .005 calc(var(--nc-surface-hue) + 10)));--nc-surface-2:light-dark(oklch(.955 .002 var(--nc-surface-hue)),oklch(.2 .005 calc(var(--nc-surface-hue) + 10)));--nc-surface-3:light-dark(oklch(.925 .002 var(--nc-surface-hue)),oklch(.23 .005 calc(var(--nc-surface-hue) + 10)));--nc-surface-4:light-dark(oklch(.885 .002 var(--nc-surface-hue)),oklch(.27 .005 calc(var(--nc-surface-hue) + 10)));--nc-text:light-dark(oklch(.28 .005 var(--nc-surface-hue)),oklch(.86 .005 var(--nc-surface-hue)));--nc-border:light-dark(oklch(.83 .005 var(--nc-surface-hue)),oklch(.28 .005 calc(var(--nc-surface-hue) + 10)));--nc-primary:light-dark(oklch(50% .2 250),oklch(60% .2 250));--nc-primary-hover:light-dark(oklch(from var(--nc-primary) calc(l - .1) c h),oklch(from var(--nc-primary) calc(l + .1) c h));--nc-primary-focus:oklch(from var(--nc-primary) l c h / .4);--nc-primary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-secondary:light-dark(oklch(45% .05 250),oklch(60% .05 250));--nc-secondary-hover:light-dark(oklch(from var(--nc-secondary) calc(l - .1) c h),oklch(from var(--nc-secondary) calc(l + .1) c h));--nc-secondary-focus:oklch(from var(--nc-secondary) l c h / .3);--nc-secondary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-valid:light-dark(oklch(52% .17 145),oklch(65% .2 145));--nc-invalid:light-dark(oklch(55% .22 25),oklch(65% .22 25));--nc-font-sans:system-ui, sans-serif;--nc-font-mono:ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--nc-spacing:1rem;--nc-radius:.25rem;--nc-content-width:60ch;--nc-content-shadow-gap:1rem;--nc-content-shadow:0 0 .15rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .02),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .015)), 0 0 .3rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .03),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .02)), 0 0 .75rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .04),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .025)), 0 0 1.35rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .04),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .03)), 0 0 2.5rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .05),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .035)), 0 0 6rem 0 light-dark(oklch(.55 .01 var(--nc-surface-hue) / .06),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .04)), 0 0 0rem .0625rem light-dark(oklch(.55 .01 var(--nc-surface-hue) / .015),oklch(.85 .01 calc(var(--nc-surface-hue) + 10) / .01))}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}html{font-family:var(--nc-font-sans);color:var(--nc-text);background-color:var(--nc-surface-1);scrollbar-gutter:stable;font-size:100%;line-height:1.5}body{grid-template-columns:1fr min(var(--nc-content-width), calc(100% - 2 * var(--nc-spacing))) 1fr;min-height:100dvh;padding-block:var(--nc-spacing);display:grid;position:relative}::selection{background-color:var(--nc-primary-focus);color:var(--nc-text)}body>*,body>[style*="display: contents"]>*{grid-column:2;min-width:0}body:before{content:"";width:clamp(0px, calc((100% - 2 * var(--nc-spacing) - var(--nc-content-width) - 4 * var(--nc-content-shadow-gap)) * 9999), calc(var(--nc-content-width) + 2 * var(--nc-content-shadow-gap)));box-shadow:var(--nc-content-shadow);pointer-events:none;z-index:-1;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}:root{--nimble-scope-start:1}h1{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:2rem;font-weight:700;line-height:1.1}h2{margin-top:2rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.75rem;font-weight:700;line-height:1.15}h3{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.5rem;font-weight:700;line-height:1.2}h4{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.25rem;font-weight:700;line-height:1.3}h5{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.125rem;font-weight:700;line-height:1.4}h6{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1rem;font-weight:700;line-height:1.5}p,ul,ol,dl,blockquote,pre,table,figure,form,fieldset{margin-top:0;margin-bottom:var(--nc-spacing)}body>:first-child,body>:first-child>:first-child{margin-top:0}body>:nth-last-child(1 of :not(script,style,dialog)),body>:nth-last-child(1 of :not(script,style,dialog))>:last-child{margin-bottom:0}ul,ol{padding-inline-start:1.5em}:where(li){margin-bottom:.25em}:where(li)>:where(ul,ol){margin-bottom:0}dt{font-weight:600}dd{margin-inline-start:1.5em;margin-bottom:.5em}blockquote{margin-block:var(--nc-spacing);padding:.25em var(--nc-spacing);border-inline-start:.25rem solid var(--nc-border);margin-inline:0;font-style:italic}:where(blockquote) footer,:where(blockquote) cite{color:color-mix(in oklch, var(--nc-text), transparent 40%);font-size:.9em;font-style:normal}hr{background-color:color-mix(in oklch, var(--nc-border), transparent 40%);height:1px;margin:var(--nc-spacing) 0;border:none}mark{color:light-dark(inherit,oklch(95% .01 85));background-color:light-dark(#fde68a,oklch(55% .12 85));border-radius:2px;padding:.1em .25em}address{font-style:normal}:where(a:not([role=button])){color:var(--nc-primary);text-underline-offset:.15em;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);transition:color .2s,text-decoration-color .2s}:where(a:not([role=button])):visited{color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310));-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310) 30%);text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310) 30%)}:where(a:not([role=button])):hover{color:var(--nc-primary-hover);-webkit-text-decoration-color:var(--nc-primary-hover);text-decoration-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]){--_btn-padding-v:.5em;--_btn-padding-h:1em;padding:var(--_btn-padding-v) var(--_btn-padding-h);background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;text-align:center;margin:0;margin-block-end:.25em;font-size:1rem;line-height:1.5;text-decoration:none;transition:background-color .2s,border-color .2s;display:inline-block}:where(button,[type=submit],[type=reset],[type=button],[role=button]):hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]):focus-visible{box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where([type=reset]){background-color:var(--nc-secondary);border-color:var(--nc-secondary);color:var(--nc-secondary-contrast)}:where([type=reset]):hover{background-color:var(--nc-secondary-hover);border-color:var(--nc-secondary-hover)}:where([type=reset]):focus-visible{box-shadow:0 0 0 2px var(--nc-secondary-focus)}:where(button,[type=submit],[type=reset],[type=button],[role=button]).inline{--_btn-padding-v:.05em;--_btn-padding-h:.4em;vertical-align:baseline;margin:.1em .15em;font-size:.875em}:where(button,[type=submit],[type=reset],[type=button],[role=button]):disabled{opacity:.5;cursor:not-allowed;pointer-events:none}:where([role=group]){margin-bottom:.25em;display:inline-flex}[role=group]>*{border-radius:0;margin:0;position:relative}[role=group]>*+*{--_divider:""}[role=group]>*+:before{content:var(--_divider);inset-inline-start:0;pointer-events:none;background:#ffffff4d;width:1px;position:absolute;top:20%;bottom:20%}[role=group]>:not(.secondary):not(.outline)+.secondary,[role=group]>.secondary+:not(.secondary):not(.outline),[role=group]>:not(.secondary):not(.outline)+.outline,[role=group]>.outline+:not(.secondary):not(.outline),[role=group]>.secondary+.outline,[role=group]>.outline+.secondary,[role=group]>input+*,[role=group]>select+*{--_divider:none}[role=group]>:first-child{border-start-start-radius:var(--nc-radius);border-end-start-radius:var(--nc-radius)}[role=group]>:last-child{border-start-end-radius:var(--nc-radius);border-end-end-radius:var(--nc-radius)}[role=group]:has(.outline):not(:has(>:not(.outline))){border:1px solid var(--nc-primary);border-radius:var(--nc-radius)}[role=group]:has(.outline):not(:has(>:not(.outline)))>.outline{border:none}[role=group]>.outline+.outline:before{background:var(--nc-primary)}[role=search] [role=group]>:first-child{border-start-start-radius:5rem;border-end-start-radius:5rem;padding-inline-start:1.25em}[role=search] [role=group]>:last-child{border-start-end-radius:5rem;border-end-end-radius:5rem;padding-inline-end:1.25em}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset]),select,textarea){--_input-bg:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);background-color:var(--_input-bg);border:1px solid var(--nc-border);border-radius:var(--nc-radius);min-height:calc(2.5em + 2px);color:var(--nc-text);font:inherit;padding:.5em .75em;font-size:1rem;transition:border-color .2s,box-shadow .2s}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset],[type=date],[type=month],[type=week],[type=time],[type=datetime-local]),select,textarea){width:100%;margin-bottom:var(--nc-spacing)}:where(p,div)>:where(input,select,textarea):nth-last-child(1 of :not(datalist,script,style)){margin-bottom:0}:where(input,select,textarea):focus-visible{border-color:var(--nc-primary);box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where(input:not([type=submit],[type=button],[type=reset]),select,textarea)+:where(small){margin-top:calc(var(--nc-spacing) * -.75);margin-bottom:var(--nc-spacing);color:color-mix(in oklch, var(--nc-text), transparent 40%);font-size:.875em;display:block}:where(input,select,textarea)[aria-invalid=false]{border-color:var(--nc-valid)}:where(input,select,textarea)[aria-invalid=true]{border-color:var(--nc-invalid)}:where(input:not([type=submit],[type=button],[type=reset]),select,textarea)[aria-invalid=false]+:where(small){color:var(--nc-valid)}:where(input:not([type=submit],[type=button],[type=reset]),select,textarea)[aria-invalid=true]+:where(small){color:var(--nc-invalid)}:where(label){margin-bottom:.25em;display:block}:where(label:has(+input,+select,+textarea)){font-weight:600}:where(label:has(+[type=file],+[type=range])){margin-bottom:.5em}:where(fieldset){border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:var(--nc-spacing);min-width:0;max-width:100%}:where(fieldset)>:nth-last-child(1 of :not(datalist,script,style)),:where(fieldset)>:nth-last-child(1 of :not(datalist,script,style))>:nth-last-child(1 of :not(datalist,script,style)){margin-bottom:0}:where(legend){padding-inline:.25em;font-weight:600}:where([type=checkbox],[type=radio]){accent-color:var(--nc-primary);width:1.125em;height:1.125em;margin:0}:where(label:has([type=checkbox],[type=radio])){align-items:center;gap:.35em;margin-bottom:.5em;display:flex}:where(label:has([type=checkbox],[type=radio]):last-child){margin-bottom:0}:where([type=search]){border-radius:5rem;padding-inline:1.25em}:where([type=range]){accent-color:var(--nc-primary);width:100%;margin-bottom:var(--nc-spacing)}:where(input[list]){width:auto}:where([type=file]){color:var(--nc-text);font:inherit;cursor:pointer;max-width:100%;margin-bottom:var(--nc-spacing)}:where([type=file])::file-selector-button{margin-right:.75em;background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;margin-inline-end:.75em;padding:.5em 1em;transition:background-color .2s,border-color .2s}:where([type=file])::file-selector-button:hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where([type=date],[type=month],[type=week],[type=time],[type=datetime-local]){min-width:10em;margin-bottom:var(--nc-spacing)}:where([type=color]){--_color-size:calc(1em * 1.5 + 1em + 2px);margin-bottom:var(--nc-spacing);--_color-pad:.25em;height:var(--_color-size);width:calc((var(--_color-size) - 2 * var(--_color-pad)) * 1.618 + 2 * var(--_color-pad));padding:var(--_color-pad);background-color:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);border:1px solid var(--nc-border);border-radius:var(--nc-radius);cursor:pointer}:where([type=color])::-webkit-color-swatch-wrapper{padding:0}:where([type=color])::-webkit-color-swatch{border-radius:calc(var(--nc-radius) * .5);border:none}:where(label:has([type=checkbox][role=switch])){align-items:center;gap:.5em;display:flex}:where([type=checkbox][role=switch]){appearance:none;background-color:var(--nc-border);cursor:pointer;border-radius:1em;flex-shrink:0;width:2.5em;height:1.25em;margin:0;transition:background-color .2s;position:relative}:where([type=checkbox][role=switch]):before{content:"";background-color:#fff;border-radius:50%;width:calc(1.25em - 4px);height:calc(1.25em - 4px);transition:transform .2s;position:absolute;top:2px;left:2px}:where([type=checkbox][role=switch]):checked{background-color:var(--nc-primary)}:where([type=checkbox][role=switch]):checked:before{transform:translate(1.25em)}:where(table){border-collapse:collapse;width:100%}:where(th,td){border-bottom:1px solid color-mix(in oklch, var(--nc-border), transparent 40%);text-align:start;padding:.5em .75em}:where(thead th,thead td){background-color:var(--nc-surface-2);text-wrap:balance;border-bottom-width:2px;font-weight:600}:where(figure:has(table)){overflow-x:auto}:where(code,kbd,samp){font-family:var(--nc-font-mono);background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:.15em .35em;font-size:.875em}:where(pre){background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:var(--nc-spacing);overflow-x:auto}:where(pre code){font-size:inherit;background:0 0;padding:0}:where(kbd){border:1px solid var(--nc-border);border-bottom-width:2px}:where(img,video,canvas,svg){max-width:100%;height:auto}:where(figure){margin:0}:where(figcaption){color:color-mix(in oklch, var(--nc-text), transparent 40%);margin-top:.5em;font-size:.9em}:where(article){background-color:var(--nc-surface-1);border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:var(--nc-spacing);margin-bottom:var(--nc-spacing)}:where(article>header),:where(article>footer){background-color:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);padding:var(--nc-spacing)}:where(article>header){margin:calc(var(--nc-spacing) * -1) calc(var(--nc-spacing) * -1) var(--nc-spacing);border-bottom:1px solid var(--nc-border);border-radius:var(--nc-radius) var(--nc-radius) 0 0}:where(article>footer){margin:var(--nc-spacing) calc(var(--nc-spacing) * -1) calc(var(--nc-spacing) * -1);border-top:1px solid var(--nc-border);border-radius:0 0 var(--nc-radius) var(--nc-radius)}:where(article)>:last-child:not(footer),:where(article>header,article>footer)>:last-child{margin-bottom:0}:where(article>header,article>footer)>h1,:where(article>header,article>footer)>h2,:where(article>header,article>footer)>h3,:where(article>header,article>footer)>h4,:where(article>header,article>footer)>h5,:where(article>header,article>footer)>h6{margin-top:0;margin-bottom:0}:where(details){border:1px solid var(--nc-border);border-radius:var(--nc-radius);margin-bottom:.5em;padding:0 1em}:where(summary){cursor:pointer;margin:0 -1em;padding:.5em 1em;font-weight:600;list-style-type:"▶ "}:where(details[open]>summary){list-style-type:"▼ "}:where(summary[role=button]){width:auto;margin:0 -1em;list-style:none;display:block}:where(summary[role=button]):before{content:"▶ ";vertical-align:middle;font-size:.75em;transition:transform .2s;display:inline-block}:where(details[open]>summary[role=button]):before{transform:rotate(90deg)}:where(details[open]){padding-bottom:.5em}:where(dialog){background-color:var(--nc-surface-4);border:1px solid var(--nc-border);border-radius:var(--nc-radius);max-width:min(90vw,40rem);max-height:85vh;padding:var(--nc-spacing)}:where(dialog[open]){margin:auto;position:fixed;inset:0}:where(dialog:has(>article)){background:0 0;border:none;padding:0}:where(dialog>article){margin-bottom:0}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;animation:.2s nc-backdrop-in}@keyframes nc-backdrop-in{0%{opacity:0}}:where(progress){width:100%}:where(meter){appearance:none;border-radius:var(--nc-radius);background-color:var(--nc-surface-3);border:0;width:100%;height:.5rem;overflow:hidden}:where(meter)::-webkit-meter-bar{border-radius:var(--nc-radius);background-color:var(--nc-surface-3);border:0;height:.5rem}:where(meter)::-webkit-meter-optimum-value{background-color:var(--nc-valid);border-radius:var(--nc-radius)}:where(meter)::-webkit-meter-suboptimum-value{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(meter)::-webkit-meter-even-less-good-value{background-color:var(--nc-invalid);border-radius:var(--nc-radius)}:where(meter)::-moz-meter-bar{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(meter):-moz-meter-optimum::-moz-meter-bar{background-color:var(--nc-valid)}:where(meter):-moz-meter-sub-optimum::-moz-meter-bar{background-color:var(--nc-primary)}:where(meter):-moz-meter-sub-sub-optimum::-moz-meter-bar{background-color:var(--nc-invalid)}@supports (appearance:base-select){:where(select){appearance:base-select}:where(select)::picker(select){appearance:base-select}:where(select)::picker-icon{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6 6-6'/%3E%3C/svg%3E");transition:rotate .4s}:where(select):open::picker-icon{rotate:180deg}:where(select)::picker(select){position-area:block-end;position-try-order:normal;position-try-fallbacks:flip-block;border:1px solid var(--nc-border);border-radius:var(--nc-radius);background-color:var(--nc-surface-1);opacity:0;transition:opacity .2s, overlay .2s allow-discrete, display .2s allow-discrete;padding:.25em}:where(select):open::picker(select){opacity:1}@starting-style{:where(select):open::picker(select){opacity:0}}:where(select) option{border-radius:var(--nc-radius);padding:.5em .75em;transition:background-color .15s}:where(select) option:hover{background-color:var(--nc-surface-2)}:where(select) option:checked{font-weight:600}}}@layer nimble.utilities{.container{max-width:var(--nc-content-width);padding-inline:var(--nc-spacing);margin-inline:auto}.fluid{max-width:none;padding-inline:var(--nc-spacing);display:block}.bleed-edge{width:100%;max-width:clamp(calc(var(--nc-content-width) + 2 * var(--nc-content-shadow-gap)), calc((100% - 2 * var(--nc-spacing) - var(--nc-content-width) - 4 * var(--nc-content-shadow-gap)) * -9999), 100%);box-shadow:none;grid-column:1/-1;margin-inline:auto;position:relative}.bleed-wide{box-shadow:none;width:100%;max-width:1200px;padding-inline:var(--nc-spacing);grid-column:1/-1;margin-inline:auto}.bleed-full{box-shadow:none;grid-column:1/-1;position:relative}.grid{gap:var(--nc-spacing);margin-bottom:var(--nc-spacing);grid-template-columns:1fr;display:grid}@media (width>=720px){.grid{grid-template-columns:repeat(auto-fit,minmax(0%,1fr))}}:root{--nimble-scope-start:1}.secondary:not(a:not([role=button])){background-color:var(--nc-secondary);border-color:var(--nc-secondary);color:var(--nc-secondary-contrast)}.secondary:not(a:not([role=button])):hover{background-color:var(--nc-secondary-hover);border-color:var(--nc-secondary-hover)}.secondary:not(a:not([role=button])):focus-visible{box-shadow:0 0 0 2px var(--nc-secondary-focus)}a:not([role=button]).secondary{color:var(--nc-secondary);-webkit-text-decoration-color:color-mix(in oklch, var(--nc-secondary), transparent 50%);text-decoration-color:color-mix(in oklch, var(--nc-secondary), transparent 50%)}a:not([role=button]).secondary:hover{color:var(--nc-secondary-hover);-webkit-text-decoration-color:var(--nc-secondary-hover);text-decoration-color:var(--nc-secondary-hover)}.outline:not(a:not([role=button])){color:var(--nc-primary);background-color:#0000}.outline:not(a:not([role=button])):hover{background-color:var(--nc-primary-focus);color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}.striped :where(tbody tr:nth-child(2n)){background-color:var(--nc-surface-2)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overflow-auto{overflow:auto}}@media print{body{color:#000;background:#fff}a[href]:after{content:" (" attr(href) ")";color:#555;font-size:.85em}a[href^=\#]:after,a[href^=javascript\:]:after{content:none}pre,blockquote{page-break-inside:avoid}h2,h3,h4{page-break-after:avoid}img{max-width:100%!important}@page{margin:2cm}}[type=date],[type=month],[type=week],[type=time],[type=datetime-local]{appearance:none}details :last-child:last-child{margin-bottom:0}@supports selector(details::details-content){details::details-content{transition:opacity .3s ease, content-visibility .3s ease allow-discrete;opacity:0}details[open]::details-content{opacity:1}@supports (interpolate-size:allow-keywords){details{interpolate-size:allow-keywords}details::details-content{transition:height .3s ease, opacity .3s ease, content-visibility .3s ease allow-discrete;height:0;overflow:clip}details[open]::details-content{height:auto}}}
|
package/no-nimble.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// no-nimble.js — Progressive enhancement for .no-nimble component isolation
|
|
2
|
+
// Wraps nimble.css scopeable rules in @scope at runtime. Auto-detects desktop
|
|
3
|
+
// Safari's @scope + @layer bug and gracefully degrades (no-op on broken browsers).
|
|
4
|
+
// No dependencies. No FOUC risk.
|
|
5
|
+
|
|
6
|
+
;(() => {
|
|
7
|
+
const SENTINEL = '--nimble-scope-start'
|
|
8
|
+
|
|
9
|
+
// --- Safari @scope + @layer bug detection ---
|
|
10
|
+
// Desktop Safari 18.x parses @scope but silently fails to apply styles inside
|
|
11
|
+
// @scope + @layer to certain elements. Test with a real element to be sure.
|
|
12
|
+
function isScopeBroken() {
|
|
13
|
+
const sheet = new CSSStyleSheet()
|
|
14
|
+
try {
|
|
15
|
+
sheet.replaceSync(
|
|
16
|
+
'@scope (:root) to (.ns-t) { @layer ns-t { .ns-p { --ns: 1 } } }'
|
|
17
|
+
)
|
|
18
|
+
} catch {
|
|
19
|
+
return true // @scope not supported at all
|
|
20
|
+
}
|
|
21
|
+
const el = document.createElement('div')
|
|
22
|
+
el.className = 'ns-p'
|
|
23
|
+
el.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden'
|
|
24
|
+
document.documentElement.appendChild(el)
|
|
25
|
+
document.adoptedStyleSheets.push(sheet)
|
|
26
|
+
const works = getComputedStyle(el).getPropertyValue('--ns').trim() === '1'
|
|
27
|
+
el.remove()
|
|
28
|
+
document.adoptedStyleSheets.pop()
|
|
29
|
+
return !works
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (isScopeBroken()) return
|
|
33
|
+
|
|
34
|
+
// --- Find nimble stylesheet by sentinel ---
|
|
35
|
+
let nimbleSheet = null
|
|
36
|
+
for (const sheet of document.styleSheets) {
|
|
37
|
+
try {
|
|
38
|
+
for (const rule of sheet.cssRules)
|
|
39
|
+
if (findSentinel(rule)) { nimbleSheet = sheet; break }
|
|
40
|
+
} catch { /* cross-origin */ }
|
|
41
|
+
if (nimbleSheet) break
|
|
42
|
+
}
|
|
43
|
+
if (!nimbleSheet) return
|
|
44
|
+
|
|
45
|
+
// If already scoped via SCSS $exclude-selector, nothing to do
|
|
46
|
+
for (const rule of nimbleSheet.cssRules)
|
|
47
|
+
if (typeof CSSScopeRule !== 'undefined' && rule instanceof CSSScopeRule) return
|
|
48
|
+
|
|
49
|
+
// --- Split rules: global vs scopeable ---
|
|
50
|
+
// Sentinels appear inside @layer nimble.base and @layer nimble.utilities.
|
|
51
|
+
// Rules before the sentinel in each layer block are global; after are scopeable.
|
|
52
|
+
// Top-level rules after the last sentinel-containing block are scopeable.
|
|
53
|
+
// @media print and @layer nimble.reset are always global.
|
|
54
|
+
const globalCSS = []
|
|
55
|
+
const scopeCSS = []
|
|
56
|
+
let seenAnySentinel = false
|
|
57
|
+
|
|
58
|
+
for (const rule of nimbleSheet.cssRules) {
|
|
59
|
+
if (rule instanceof CSSLayerBlockRule && findSentinel(rule)) {
|
|
60
|
+
// Split this layer block at the sentinel
|
|
61
|
+
const layerName = rule.name
|
|
62
|
+
const pre = [], post = []
|
|
63
|
+
let past = false
|
|
64
|
+
for (const inner of rule.cssRules) {
|
|
65
|
+
if (!past && isSentinelRule(inner)) { past = true; continue }
|
|
66
|
+
;(past ? post : pre).push(inner.cssText)
|
|
67
|
+
}
|
|
68
|
+
if (pre.length)
|
|
69
|
+
globalCSS.push(`@layer ${layerName} {\n${pre.join('\n')}\n}`)
|
|
70
|
+
if (post.length)
|
|
71
|
+
scopeCSS.push(`@layer ${layerName} {\n${post.join('\n')}\n}`)
|
|
72
|
+
seenAnySentinel = true
|
|
73
|
+
} else if (!seenAnySentinel ||
|
|
74
|
+
rule instanceof CSSLayerStatementRule ||
|
|
75
|
+
rule instanceof CSSMediaRule && rule.media.mediaText === 'print') {
|
|
76
|
+
// Global: layer order declaration, reset layer, anything before first sentinel,
|
|
77
|
+
// and @media print (loaded as global in SCSS)
|
|
78
|
+
globalCSS.push(rule.cssText)
|
|
79
|
+
} else {
|
|
80
|
+
// After sentinel-containing blocks: scopeable (unlayered rules from forms, details, etc.)
|
|
81
|
+
scopeCSS.push(rule.cssText)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (!scopeCSS.length) return
|
|
86
|
+
|
|
87
|
+
// --- Build replacement stylesheet with @scope wrapper ---
|
|
88
|
+
const css = globalCSS.join('\n') + '\n' +
|
|
89
|
+
`@scope (:root) to (.no-nimble) {\n${scopeCSS.join('\n')}\n}`
|
|
90
|
+
const replacement = new CSSStyleSheet()
|
|
91
|
+
replacement.replaceSync(css)
|
|
92
|
+
|
|
93
|
+
nimbleSheet.disabled = true
|
|
94
|
+
document.adoptedStyleSheets.push(replacement)
|
|
95
|
+
|
|
96
|
+
// --- Helpers ---
|
|
97
|
+
function isSentinelRule(rule) {
|
|
98
|
+
return rule instanceof CSSStyleRule &&
|
|
99
|
+
rule.selectorText === ':root' &&
|
|
100
|
+
rule.style.getPropertyValue(SENTINEL)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function findSentinel(rule) {
|
|
104
|
+
if (isSentinelRule(rule)) return true
|
|
105
|
+
if (rule.cssRules) {
|
|
106
|
+
for (const inner of rule.cssRules)
|
|
107
|
+
if (findSentinel(inner)) return true
|
|
108
|
+
}
|
|
109
|
+
return false
|
|
110
|
+
}
|
|
111
|
+
})()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leftium/nimble.css",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "A minimal class/classless CSS library combining Open Props design tokens with PicoCSS aesthetics",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/nimble.min.css",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"./progress": "./dist/nimble-progress.min.css",
|
|
14
14
|
"./meter": "./dist/nimble-meter.min.css",
|
|
15
15
|
"./select": "./dist/nimble-select.min.css",
|
|
16
|
+
"./no-nimble": "./no-nimble.js",
|
|
16
17
|
"./scss": "./src/nimble.scss",
|
|
17
18
|
"./scss/core": "./src/nimble-core.scss",
|
|
18
19
|
"./scss/progress": "./src/_progress.scss",
|
|
@@ -27,7 +28,8 @@
|
|
|
27
28
|
"bugs": "https://github.com/Leftium/nimble.css/issues",
|
|
28
29
|
"files": [
|
|
29
30
|
"dist/",
|
|
30
|
-
"src/"
|
|
31
|
+
"src/",
|
|
32
|
+
"no-nimble.js"
|
|
31
33
|
],
|
|
32
34
|
"devDependencies": {
|
|
33
35
|
"lightningcss": "^1.29.0",
|
package/src/_config.scss
CHANGED
|
@@ -18,7 +18,7 @@ $enable-details: true !default;
|
|
|
18
18
|
// so they don't apply inside elements matching this selector.
|
|
19
19
|
// Document-level styles (reset, colors, body grid) remain global.
|
|
20
20
|
// Set to null to disable scoping (all styles apply globally).
|
|
21
|
-
$exclude-selector:
|
|
21
|
+
$exclude-selector: null !default;
|
|
22
22
|
|
|
23
23
|
// --- Colors (oklch parameters) ---
|
|
24
24
|
|
package/src/_document.scss
CHANGED
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
scrollbar-gutter: stable;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
// Grid centering:
|
|
21
|
-
// 1fr |
|
|
22
|
-
// 1
|
|
23
|
-
// Content children go to column
|
|
24
|
-
// Column assignment (grid-column:
|
|
20
|
+
// Grid centering: 3-column grid on body.
|
|
21
|
+
// 1fr | content | 1fr
|
|
22
|
+
// 1 2 3
|
|
23
|
+
// Content children go to column 2.
|
|
24
|
+
// Column assignment (grid-column: 2) is in _grid-columns.scss
|
|
25
25
|
// so it can be scoped — allowing .no-nimble elements to escape.
|
|
26
|
+
// The content shadow pseudo is wider than column 2 by --nc-content-shadow-gap
|
|
27
|
+
// on each side, creating a visual gap between shadow edge and content.
|
|
26
28
|
body {
|
|
27
29
|
display: grid;
|
|
28
30
|
grid-template-columns:
|
|
29
31
|
1fr
|
|
30
|
-
var(#{$prefix}content-
|
|
31
|
-
min(var(#{$prefix}content-width), #{string.unquote('calc(100% - 2 * var(#{$prefix}spacing) - 2 * var(#{$prefix}content-shadow-gap))')})
|
|
32
|
-
var(#{$prefix}content-shadow-gap)
|
|
32
|
+
min(var(#{$prefix}content-width), #{string.unquote('calc(100% - 2 * var(#{$prefix}spacing))')})
|
|
33
33
|
1fr;
|
|
34
34
|
min-height: 100dvh;
|
|
35
35
|
padding-block: var(#{$prefix}spacing);
|
package/src/_grid-columns.scss
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==========================================================================
|
|
2
2
|
// nimble.css — Grid Column Assignment
|
|
3
|
-
// Assigns body's direct children to the centered content column (column
|
|
4
|
-
//
|
|
3
|
+
// Assigns body's direct children to the centered content column (column 2).
|
|
4
|
+
// 3-column grid: 1fr | content | 1fr
|
|
5
5
|
// Global (not scoped) so the body grid layout always applies.
|
|
6
6
|
// ==========================================================================
|
|
7
7
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
@layer nimble.base {
|
|
12
12
|
|
|
13
13
|
body > * {
|
|
14
|
-
grid-column:
|
|
14
|
+
grid-column: 2;
|
|
15
15
|
min-width: 0; // Allow grid children to shrink below intrinsic content width
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -22,30 +22,30 @@
|
|
|
22
22
|
// but NOT for CSS selector matching — so body > * misses the actual
|
|
23
23
|
// content elements. This rule mirrors the body > * rule above.
|
|
24
24
|
body > [style*='display: contents'] > * {
|
|
25
|
-
grid-column:
|
|
25
|
+
grid-column: 2;
|
|
26
26
|
min-width: 0;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// Content shadow: absolutely-positioned pseudo spanning full body height.
|
|
30
|
-
// Width
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
// Width = content column + shadow gap on each side, creating a visual
|
|
31
|
+
// separation between the shadow edge and the content.
|
|
32
|
+
// The clamp() formula handles visibility: shadow shows at full width when
|
|
33
|
+
// there's at least 2*gap of space on each side between shadow edge and
|
|
34
|
+
// viewport edge, otherwise snaps to 0. No breakpoint needed.
|
|
35
|
+
body::before {
|
|
36
|
+
content: '';
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 0;
|
|
39
|
+
bottom: 0;
|
|
40
|
+
left: 50%;
|
|
41
|
+
transform: translateX(-50%);
|
|
42
|
+
width: clamp(0px,
|
|
43
|
+
#{string.unquote('calc((100% - 2 * var(#{$prefix}spacing) - var(#{$prefix}content-width) - 4 * var(#{$prefix}content-shadow-gap)) * 9999)')},
|
|
44
|
+
#{string.unquote('calc(var(#{$prefix}content-width) + 2 * var(#{$prefix}content-shadow-gap))')}
|
|
45
|
+
);
|
|
46
|
+
box-shadow: var(#{$prefix}content-shadow);
|
|
47
|
+
pointer-events: none;
|
|
48
|
+
z-index: -1;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
}
|
|
@@ -2,8 +2,15 @@
|
|
|
2
2
|
// nimble.css — Layout Utilities
|
|
3
3
|
// Global layout classes that interact with the body grid.
|
|
4
4
|
// Always available, including on .no-nimble elements.
|
|
5
|
+
//
|
|
6
|
+
// Breakout hierarchy (narrow → wide):
|
|
7
|
+
// (default) — content column (--nc-content-width)
|
|
8
|
+
// .bleed-edge — content + shadow gap on each side (shadow boundary)
|
|
9
|
+
// .bleed-wide — up to $wide-width (1200px), centered
|
|
10
|
+
// .bleed-full — full viewport width
|
|
5
11
|
// ==========================================================================
|
|
6
12
|
|
|
13
|
+
@use 'sass:string';
|
|
7
14
|
@use 'config' as *;
|
|
8
15
|
|
|
9
16
|
@if $enable-utilities {
|
|
@@ -24,10 +31,39 @@
|
|
|
24
31
|
padding-inline: var(#{$prefix}spacing);
|
|
25
32
|
}
|
|
26
33
|
|
|
27
|
-
// Break out
|
|
34
|
+
// Break out to shadow/paper edge (content + gap on each side).
|
|
35
|
+
// Uses the same shadow-visibility condition as the body::before pseudo:
|
|
36
|
+
// when the shadow is visible, caps at content-width + 2*gap (shadow boundary);
|
|
37
|
+
// when the shadow is hidden (narrow viewport), goes full width.
|
|
28
38
|
// position: relative creates a stacking context so background
|
|
29
39
|
// covers adjacent siblings' content shadows.
|
|
30
|
-
.
|
|
40
|
+
.bleed-edge {
|
|
41
|
+
grid-column: 1 / -1;
|
|
42
|
+
width: 100%;
|
|
43
|
+
max-width: clamp(
|
|
44
|
+
#{string.unquote('calc(var(#{$prefix}content-width) + 2 * var(#{$prefix}content-shadow-gap))')},
|
|
45
|
+
#{string.unquote('calc((100% - 2 * var(#{$prefix}spacing) - var(#{$prefix}content-width) - 4 * var(#{$prefix}content-shadow-gap)) * -9999)')},
|
|
46
|
+
100%
|
|
47
|
+
);
|
|
48
|
+
margin-inline: auto;
|
|
49
|
+
box-shadow: none;
|
|
50
|
+
position: relative;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Break out to wide max-width
|
|
54
|
+
.bleed-wide {
|
|
55
|
+
grid-column: 1 / -1;
|
|
56
|
+
box-shadow: none;
|
|
57
|
+
width: 100%;
|
|
58
|
+
max-width: #{$wide-width};
|
|
59
|
+
margin-inline: auto;
|
|
60
|
+
padding-inline: var(#{$prefix}spacing);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Break out of centered container to full viewport width.
|
|
64
|
+
// position: relative creates a stacking context so background
|
|
65
|
+
// covers adjacent siblings' content shadows.
|
|
66
|
+
.bleed-full {
|
|
31
67
|
grid-column: 1 / -1;
|
|
32
68
|
box-shadow: none;
|
|
33
69
|
position: relative;
|
|
@@ -47,16 +83,6 @@
|
|
|
47
83
|
}
|
|
48
84
|
}
|
|
49
85
|
|
|
50
|
-
// Break out to wide max-width
|
|
51
|
-
.wide {
|
|
52
|
-
grid-column: 1 / -1;
|
|
53
|
-
box-shadow: none;
|
|
54
|
-
width: 100%;
|
|
55
|
-
max-width: #{$wide-width};
|
|
56
|
-
margin-inline: auto;
|
|
57
|
-
padding-inline: var(#{$prefix}spacing);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
86
|
}
|
|
61
87
|
|
|
62
88
|
}
|
package/src/_typography.scss
CHANGED
|
@@ -24,13 +24,7 @@ $_heading-scale: (
|
|
|
24
24
|
h6: (size: 1rem, lh: 1.5, mt: 1.5rem), // OP --font-size-1/--size-3; lh: --font-lineheight-3; mt: --size-5
|
|
25
25
|
);
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
// Spec §8.3
|
|
29
|
-
$_heading-phone: (
|
|
30
|
-
h1: 1.75rem, // OP --size-6
|
|
31
|
-
h2: 1.5rem, // OP --size-5
|
|
32
|
-
h3: 1.3rem, // no OP match (near --size-4: 1.25rem)
|
|
33
|
-
);
|
|
27
|
+
|
|
34
28
|
|
|
35
29
|
@layer nimble.base {
|
|
36
30
|
|
|
@@ -47,15 +41,6 @@ $_heading-phone: (
|
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
43
|
|
|
50
|
-
// Phone breakpoint: scale down h1-h3
|
|
51
|
-
@media (max-width: #{$breakpoint-phone}) {
|
|
52
|
-
@each $tag, $size in $_heading-phone {
|
|
53
|
-
#{$tag} {
|
|
54
|
-
font-size: #{$size};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
44
|
// ----- Vertical rhythm -----
|
|
60
45
|
// Block elements: no top margin, consistent bottom margin
|
|
61
46
|
// Spec §8.4
|
package/src/nimble-core.scss
CHANGED
|
@@ -18,6 +18,14 @@
|
|
|
18
18
|
@use 'layout-utilities';
|
|
19
19
|
@use 'print';
|
|
20
20
|
|
|
21
|
+
// Sentinel markers — no-nimble.js uses these to find where scopeable rules begin
|
|
22
|
+
@layer nimble.base {
|
|
23
|
+
:root { --nimble-scope-start: 1 }
|
|
24
|
+
}
|
|
25
|
+
@layer nimble.utilities {
|
|
26
|
+
:root { --nimble-scope-start: 1 }
|
|
27
|
+
}
|
|
28
|
+
|
|
21
29
|
// Component-level styles — optionally scoped
|
|
22
30
|
@if $exclude-selector {
|
|
23
31
|
@scope (:root) to (#{$exclude-selector}) {
|
package/src/nimble.scss
CHANGED
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
@use 'layout-utilities';
|
|
20
20
|
@use 'print';
|
|
21
21
|
|
|
22
|
+
// Sentinel markers — no-nimble.js uses these to find where scopeable rules begin
|
|
23
|
+
@layer nimble.base {
|
|
24
|
+
:root { --nimble-scope-start: 1 }
|
|
25
|
+
}
|
|
26
|
+
@layer nimble.utilities {
|
|
27
|
+
:root { --nimble-scope-start: 1 }
|
|
28
|
+
}
|
|
29
|
+
|
|
22
30
|
// Component-level styles — optionally scoped
|
|
23
31
|
@if $exclude-selector {
|
|
24
32
|
@scope (:root) to (#{$exclude-selector}) {
|