newtil-css 0.2.93 → 0.2.95

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.
@@ -1 +1,1430 @@
1
- @import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");.icon\:home:before{content:"\e88a"}.icon\:menu:before{content:"\e5d2"}.icon\:close:before{content:"\e5cd"}.icon\:arrow_back:before{content:"\e5c4"}.icon\:arrow_forward:before{content:"\e5c8"}.icon\:expand_more:before{content:"\e5cf"}.icon\:expand_less:before{content:"\e5ce"}.icon\:chevron_left:before{content:"\e5cb"}.icon\:chevron_right:before{content:"\e5cc"}.icon\:more_vert:before{content:"\e5d4"}.icon\:more_horiz:before{content:"\e5d3"}.icon\:refresh:before{content:"\e5d5"}.icon\:settings:before{content:"\e8b8"}.icon\:apps:before{content:"\e5c3"}.icon\:launch:before{content:"\e895"}.icon\:add:before{content:"\e145"}.icon\:remove:before{content:"\e15b"}.icon\:edit:before{content:"\e3c9"}.icon\:delete:before{content:"\e872"}.icon\:save:before{content:"\e161"}.icon\:check:before{content:"\e5ca"}.icon\:clear:before{content:"\e14c"}.icon\:cancel:before{content:"\e5c9"}.icon\:done:before{content:"\e876"}.icon\:search:before{content:"\e8b6"}.icon\:share:before{content:"\e80d"}.icon\:download:before{content:"\e2c4"}.icon\:upload:before{content:"\e2c6"}.icon\:copy:before{content:"\e14d"}.icon\:visibility:before{content:"\e8f4"}.icon\:visibility_off:before{content:"\e8f5"}.icon\:lock:before{content:"\e897"}.icon\:lock_open:before{content:"\e898"}.icon\:sync:before{content:"\e627"}.icon\:info:before{content:"\e88e"}.icon\:email:before{content:"\e0be"}.icon\:phone:before{content:"\e0cd"}.icon\:chat:before{content:"\e0b7"}.icon\:notifications:before{content:"\e7f4"}.icon\:send:before{content:"\e163"}.icon\:reply:before{content:"\e15e"}.icon\:help:before{content:"\e887"}.icon\:feedback:before{content:"\e87f"}.icon\:play_arrow:before{content:"\e037"}.icon\:pause:before{content:"\e034"}.icon\:stop:before{content:"\e047"}.icon\:volume_up:before{content:"\e050"}.icon\:volume_off:before{content:"\e04f"}.icon\:mic:before{content:"\e029"}.icon\:mic_off:before{content:"\e02b"}.icon\:folder:before{content:"\e2c7"}.icon\:folder_open:before{content:"\e2c8"}.icon\:attach_file:before{content:"\e226"}.icon\:cloud:before{content:"\e2bd"}.icon\:description:before{content:"\e873"}.icon\:person:before{content:"\e7fd"}.icon\:people:before{content:"\e7fb"}.icon\:favorite:before{content:"\e87d"}.icon\:star:before{content:"\e838"}.icon\:thumb_up:before{content:"\e8dc"}:root{--icon-size:24px;--icon-family:"Material Symbols Outlined";--icon-color:var(--color-base-9);--icon-fill:0;--icon-weight:400;--icon-grade:0;--icon-optical-size:24}@media (prefers-color-scheme:dark){:root{--icon-color:var(--color-base-2)}}.m3-icon{align-items:center;display:inline-flex;height:var(--icon-size);overflow:hidden;transition:all .2s ease-in-out;visibility:visible;width:var(--icon-size);&:before{align-items:center;color:inherit;display:inline-flex;flex-shrink:0;font-family:var(--icon-family);font-size:var(--icon-size);font-variation-settings:"FILL" var(--icon-fill,0),"wght" var(--icon-weight,400),"GRAD" var(--icon-grade,0),"OPSZ" var(--icon-optical-size,24);height:var(--icon-size);overflow:hidden;vertical-align:top;width:var(--icon-size)}&.hover:not(.n-deco):hover{background-color:var(--color-base-3);border-radius:50%;transform:scale(1.4);&:before{transform:scale(.72)}}&.icon-style\:outlined:before{--icon-family:"Material Symbols Outlined"}&.icon-style\:rounded:before{--icon-family:"Material Symbols Rounded"}&.icon-style\:sharp:before{--icon-family:"Material Symbols Sharp"}&.icon-filled\:0:before{--icon-fill:0}&.icon-filled\:1:before{--icon-fill:1}&.icon-weight\:100:before{--icon-weight:100}&.icon-weight\:200:before{--icon-weight:200}&.icon-weight\:300:before{--icon-weight:300}&.icon-weight\:400:before{--icon-weight:400}&.icon-weight\:500:before{--icon-weight:500}&.icon-weight\:600:before{--icon-weight:600}&.icon-weight\:700:before{--icon-weight:700}&.icon-grade\:-25:before{--icon-grade:-25}&.icon-grade\:0:before{--icon-grade:0}&.icon-grade\:200:before{--icon-grade:200}&.icon-optical-size\:20:before{--icon-optical-size:20px}&.icon-optical-size\:24:before{--icon-optical-size:24px}&.icon-optical-size\:40:before{--icon-optical-size:40px}&.icon-optical-size\:48:before{--icon-optical-size:48px}&.icon-color\:main-1:before{color:var(--color-main-1)}&.icon-color\:main-2:before{color:var(--color-main-2)}&.icon-color\:main-3:before{color:var(--color-main-3)}&.icon-color\:sub-1:before{color:var(--color-sub-1)}&.icon-color\:sub-2:before{color:var(--color-sub-2)}&.icon-color\:sub-3:before{color:var(--color-sub-3)}&.icon-color\:accent-1:before{color:var(--color-accent-1)}&.icon-color\:accent-2:before{color:var(--color-accent-2)}&.icon-color\:accent-3:before{color:var(--color-accent-3)}&.icon-color\:base-1:before{color:var(--color-base-1)}&.icon-color\:base-2:before{color:var(--color-base-2)}&.icon-color\:base-3:before{color:var(--color-base-3)}&.icon-color\:base-4:before{color:var(--color-base-4)}&.icon-color\:base-5:before{color:var(--color-base-5)}&.icon-color\:base-6:before{color:var(--color-base-6)}&.icon-color\:base-7:before{color:var(--color-base-7)}&.icon-color\:base-8:before{color:var(--color-base-8)}&.icon-color\:base-9:before{color:var(--color-base-9)}&.icon-color\:base-10:before{color:var(--color-base-10)}&.icon-size\:20{--icon-size:20px}&.icon-size\:24{--icon-size:24px}&.icon-size\:40{--icon-size:40px}&.icon-size\:48{--icon-size:48px}}.m3-btn{--btn-gap:2px;--btn-margin-top:5px;--btn-fill:1;--btn-background:rgba(var(--rgb-main-2),1);--btn-color:rgb(var(--rgb-base-1));--btn-box-shadow:none;--btn-border:0;--btn-outline:none;--btn-outline-offset:0px;--btn-border-radius:999px;--btn-height:var(--space-22);--btn-padding:0 var(--space-10);--btn-font-size:var(--space-8);--btn-font-weight:var(--font-weight-medium);--btn-line-height:var(--space-13);--btn-letter-spacing:0.1px}@media (prefers-color-scheme:dark){.m3-btn{--btn-background-dark:rgba(var(--rgb-main-2),1);--btn-color-dark:rgb(var(--rgb-base-1));--btn-box-shadow-dark:none;--btn-border-dark:0;--btn-outline-dark:none}.m3-btn.btn-state\:disabled,.m3-btn:disabled{--btn-background-dark:rgba(var(--rgb-main-3),0.3);--btn-color-dark:rgba(var(--rgb-main-1),0.3);--btn-box-shadow-dark:none;--btn-border-dark:0;--btn-outline-dark:none}.m3-btn.btn-state\:focus:not(:active),.m3-btn:focus:not(:active){--btn-border-dark:2px solid rgb(var(--rgb-base-1));--btn-outline-dark:2px solid rgb(var(--rgb-main-2))}.m3-btn.btn-state\:hover,.m3-btn:hover{--btn-background-dark:rgba(var(--rgb-main-1),1)}.m3-btn.btn-state\:active,.m3-btn:active{--btn-background-dark:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-2),1) 65%,rgba(var(--rgb-main-1),1) 66%);--btn-border-radius-dark:var(--radius-lg)}.btn\:elevated{--btn-background-dark:rgba(var(--rgb-main-3),0.3);--btn-box-shadow-dark:0px 1px 2px 0.5px rgba(var(--rgb-base-10),1);--btn-color-dark:rgb(var(--rgb-main-1))}.btn\:tonal{--btn-background-dark:rgba(var(--rgb-main-2),0.5);--btn-color-dark:rgb(var(--rgb-main-1))}.btn\:outlined{--btn-background-dark:none;--btn-color-dark:rgb(var(--rgb-main-1));--btn-outline-dark:0.2px solid rgba(var(--rgb-main-3),0.7)}.btn\:text{--btn-background-dark:none;--btn-color-dark:rgb(var(--rgb-main-2))}.btn\:elevated.btn-state\:focus:not(:active),.btn\:elevated:focus:not(:active){--btn-border-dark:2px solid rgb(var(--rgb-main-3));--btn-outline-dark:2px solid rgb(var(--rgb-base-1))}.btn\:elevated.btn-state\:hover,.btn\:elevated:hover{--btn-background-dark:rgba(var(--rgb-main-2),0.3)}.btn\:elevated.btn-state\:active,.btn\:elevated:active{--btn-background-dark:radial-gradient(144% 100% at 80% 94%,rgba(var(--rgb-main-3),0.5) 65%,rgba(var(--rgb-main-3),1) 66%);--btn-border-radius-dark:var(--radius-lg)}.btn\:tonal.btn-state\:focus:not(:active),.btn\:tonal:focus:not(:active){--btn-border-dark:2px solid rgb(var(--rgb-base-1));--btn-outline-dark:3px solid rgba(var(--rgb-main-2),0.5)}.btn\:tonal.btn-state\:hover,.btn\:tonal:hover{--btn-background-dark:rgba(var(--rgb-main-3),0.7)}.btn\:tonal.btn-state\:active,.btn\:tonal:active{--btn-background-dark:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-2),0.5) 65%,rgba(var(--rgb-main-3),0.7) 66%);--btn-border-radius-dark:var(--radius-lg)}.btn\:outlined.btn-state\:focus:not(:active),.btn\:outlined:focus:not(:active){--btn-border-dark:2px solid rgb(var(--rgb-main-1));--btn-outline-dark:0.1px solid rgba(var(--rgb-main-1),0.5);--btn-outline-offset-dark:-5px}.btn\:outlined.btn-state\:hover,.btn\:outlined:hover{--btn-background-dark:rgba(var(--rgb-main-3),0.5)}.btn\:outlined.btn-state\:active,.btn\:outlined:active{--btn-background-dark:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-2),0.5) 65%,rgba(var(--rgb-main-2),0.3) 66%);--btn-border-radius-dark:var(--radius-lg)}.btn\:text.btn-state\:focus:not(:active),.btn\:text:focus:not(:active){--btn-border-dark:2px solid rgb(var(--rgb-main-1));--btn-outline-dark:0.1px solid rgba(var(--rgb-main-1),0.5);--btn-outline-offset-dark:-5px}.btn\:text.btn-state\:hover,.btn\:text:hover{--btn-background-dark:rgba(var(--rgb-main-3),0.5)}.btn\:text.btn-state\:active,.btn\:text:active{--btn-background-dark:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-2),0.5) 65%,rgba(var(--rgb-main-2),0.3) 66%);--btn-border-radius-dark:var(--radius-lg)}}.m3-btn{align-items:center;background:var(--btn-background-dark,var(--btn-background));border:var(--btn-border-dark,var(--btn-border));border-radius:var(--btn-border-radius);box-shadow:var(--btn-box-shadow-dark,var(--btn-box-shadow));color:var(--btn-color-dark,var(--btn-color));display:inline-flex;font-family:roboto;font-size:var(--btn-font-size);font-variation-settings:"FILL" var(--btn-fill);font-weight:var(--btn-font-weight);gap:var(--btn-gap);height:var(--btn-height);justify-content:center;letter-spacing:var(--btn-letter-spacing);line-height:var(--btn-line-height);margin-top:var(--btn-margin-top);outline:var(--btn-outline-dark,var(--btn-outline));outline-offset:var(--btn-outline-offset);padding:var(--btn-padding);transition:background-color .3s ease,transform .3s ease}.m3-btn.btn-state\:disabled,.m3-btn:disabled{--btn-background:rgba(var(--rgb-base-10),0.08);--btn-color:rgba(var(--rgb-base-10),0.2);--btn-box-shadow:none;--btn-border:none;--btn-outline:none}.btn-state\:focus:not(:active),.m3-btn:focus:not(:active){--btn-border:2px solid rgba(var(--rgb-base-1),1);--btn-outline:2.5px solid rgba(var(--rgb-main-2),1)}.btn-state\:hover,.m3-btn:hover{--btn-background:rgba(var(--rgb-main-2),0.7)}.btn-state\:active,.m3-btn:active{--btn-background:radial-gradient(144% 100% at 80% 94%,rgba(var(--rgb-main-2),0.7) 65%,rgba(var(--rgb-main-2),1) 66%);--btn-border-radius:var(--radius-lg)}.btn\:elevated{--btn-background:linear-gradient(161deg,rgba(var(--rgb-main-1),0.01) 0%,rgba(var(--rgb-main-1),0.2) 100%);--btn-box-shadow:0px 0.7px 2px 0.5px rgba(var(--rgb-base-10),0.5);--btn-color:rgb(var(--rgb-main-2))}.btn\:tonal{--btn-background:radial-gradient(144% 100% at 80% 94%,rgba(var(--rgb-main-1),1) 0%,rgba(var(--rgb-main-1),0.7) 100%);--btn-color:rgb(var(--rgb-main-3))}.btn\:outlined{--btn-background:none;--btn-border:1px solid rgba(var(--rgb-main-3),0.2);--btn-color:rgb(var(--rgb-main-3))}.btn\:text{--btn-background:none;--btn-border:none;--btn-outline:none;--btn-color:rgb(var(--rgb-main-2))}.btn\:elevated.btn-state\:focus:not(:active),.btn\:elevated:focus:not(:active){--btn-border:2px solid rgb(var(--rgb-main-3));--btn-outline:0.3px solid rgba(var(--rgb-main-3),0.3);--btn-outline-offset:-4px}.btn\:elevated.btn-state\:hover,.btn\:elevated:hover{--btn-background:linear-gradient(161deg,rgba(var(--rgb-main-1),0.1) 0%,rgba(var(--rgb-main-1),0.5) 100%)}.btn\:elevated.btn-state\:active,.btn\:elevated:active{--btn-background:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-1),0.4) 65%,rgba(var(--rgb-main-1),0.2) 66%);--btn-border-radius:var(--radius-lg)}.btn\:tonal.btn-state\:focus:not(:active),.btn\:tonal:focus:not(:active){--btn-border:2px solid rgb(var(--rgb-base-1));--btn-outline:2.5px solid rgb(var(--rgb-main-2))}.btn\:tonal.btn-state\:hover,.btn\:tonal:hover{--btn-background:linear-gradient(161deg,rgba(var(--rgb-main-1),0.5) 8%,rgba(var(--rgb-main-1),0.6) 81%)}.btn\:tonal.btn-state\:active,.btn\:tonal:active{--btn-background:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-1),1) 65%,rgba(var(--rgb-main-1),0.8) 66%);--btn-border-radius:var(--radius-lg)}.btn\:outlined.btn-state\:focus:not(:active),.btn\:outlined:focus:not(:active){--btn-border:2px solid rgb(var(--rgb-main-3));--btn-outline:0.3px solid rgba(var(--rgb-main-3),0.3);--btn-outline-offset:-4px}.btn\:outlined.btn-state\:hover,.btn\:outlined:hover{--btn-background:linear-gradient(161deg,rgba(var(--rgb-main-1),0.01) 0%,rgba(var(--rgb-main-1),0.2) 100%)}.btn\:outlined.btn-state\:active,.btn\:outlined:active{--btn-background:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-1),0.4) 65%,rgba(var(--rgb-main-1),0.2) 66%);--btn-border-radius:var(--radius-lg)}.btn\:text.btn-state\:focus:not(:active),.btn\:text:focus:not(:active){--btn-border:2px solid rgb(var(--rgb-main-3));--btn-outline:0.3px solid rgba(var(--rgb-main-3),0.3);--btn-outline-offset:-4px}.btn\:text.btn-state\:hover,.btn\:text:hover{--btn-background:linear-gradient(161deg,rgba(var(--rgb-main-1),0.01) 0%,rgba(var(--rgb-main-1),0.2) 100%)}.btn\:text.btn-state\:active,.btn\:text:active{--btn-background:radial-gradient(107% 112% at 65% 103%,rgba(var(--rgb-main-1),0.4) 65%,rgba(var(--rgb-main-1),0.2) 66%);--btn-border-radius:var(--radius-lg)}.btn-shape\:square{--btn-border-radius:12px}.btn-size\:xs{--btn-height:var(--space-19);--btn-padding:0 var(--space-6);--btn-font-size:var(--space-8);--btn-font-weight:var(--font-weight-medium);--btn-line-height:var(--space-13);--btn-letter-spacing:0.1px}.btn-size\:xs.btn-shape\:square{--btn-border-radius:12px}.btn-size\:m{--btn-height:var(--space-28);--btn-padding:0 var(--space-15);--btn-font-size:var(--space-10);--btn-font-weight:var(--font-weight-medium);--btn-line-height:var(--space-15);--btn-letter-spacing:0.15px}.btn-size\:m.btn-shape\:square{--btn-border-radius:16px}.btn-size\:l{--btn-height:var(--space-32);--btn-padding:0 var(--space-24);--btn-font-size:var(--space-15);--btn-font-weight:600;--btn-line-height:var(--space-19);--btn-letter-spacing:0px}.btn-size\:l.btn-shape\:square{--btn-border-radius:28px}.btn-size\:xl{--btn-height:var(--space-35);--btn-padding:0 var(--space-29);--btn-font-size:var(--space-19);--btn-font-weight:600;--btn-line-height:var(--space-22);--btn-letter-spacing:0px}.btn-size\:xl.btn-shape\:square{--btn-border-radius:28px}.m3-checkbox{--checkbox-main-color:var(--color-main-2);--checkbox-icon-color:var(--color-white);--checkbox-border-color:var(--color-base-8);--checkbox-outline-color:var(--color-main-2);--checkbox-text-color:var(--color-base-8);--checkbox-opacity:var(--opacity-0);--checkbox-icon-content:"\e5ca";--checkbox-transparent-0:transparent 0%;--checkbox-transparent-38:transparent 38%;--checkbox-transparent-92:transparent 92%;--checkbox-transparent-100:transparent 100%;--background-gradient:linear-gradient(180deg,#fff,rgba(106,142,41,.3) 50%,rgba(106,142,41,.5))}@media (prefers-color-scheme:dark){.m3-checkbox{--checkbox-main-color:var(--color-main-1);--checkbox-icon-color:var(--color-main-3);--checkbox-outline-color:var(--color-main-1);--color-main-2:var(--color-main-1);--background-gradient:linear-gradient(180deg,#fff,rgba(140,186,53,.3) 50%,rgba(140,186,53,.5))}}.m3-checkbox,.m3-checkbox input[type=checkbox]:after,.m3-checkbox input[type=checkbox]:before{transition:all .3s ease}.m3-checkbox{align-items:center;color:var(--checkbox-text-color);cursor:pointer;display:inline-flex;font-size:16px;padding:15px;user-select:none}.m3-checkbox input[type=checkbox]{appearance:none;border:2px solid var(--checkbox-border-color);border-radius:2px;box-sizing:border-box;height:18px;margin-right:20px;position:relative;width:18px}.m3-checkbox input[type=checkbox]:after{align-items:center;background-color:var(--checkbox-main-color);border-color:var(--checkbox-main-color);border-radius:2px;color:var(--checkbox-icon-color);content:var(--checkbox-icon-content);display:flex;font-family:Material Symbols Outlined;font-size:18px;font-weight:var(--font-weight-medium);height:inherit;justify-content:center;left:-2px;opacity:var(--checkbox-opacity);position:absolute;top:-2px;width:inherit}.m3-checkbox input[type=checkbox]:before{background:var(--checkbox-main-color);border-radius:50%;content:"";display:inline-flex;height:40px;left:50%;opacity:var(--checkbox-opacity);outline:3px solid var(--checkbox-outline-color);position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}.m3-checkbox input[type=checkbox]:not(:disabled):checked:after{--checkbox-icon-content:"\e5ca";--checkbox-opacity:var(--opacity-100)}.m3-checkbox input[type=checkbox]:disabled{--checkbox-border-color:color-mix(in srgb,var(--color-base-8),var(--checkbox-transparent-38));--checkbox-text-color:color-mix(in srgb,var(--color-base-8),var(--checkbox-transparent-38))}.m3-checkbox input[type=checkbox]:not(:disabled):hover:before{--checkbox-outline-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-100));--checkbox-main-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-92));--checkbox-opacity:var(--opacity-100)}.m3-checkbox input[type=checkbox]:not(:disabled):focus:before{--checkbox-outline-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-0));--checkbox-main-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-100));--checkbox-opacity:var(--opacity-100)}.m3-checkbox input[type=checkbox]:not(:disabled):active:before{--checkbox-outline-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-100));--checkbox-main-color:var(--background-gradient);--checkbox-opacity:var(--opacity-90)}.m3-checkbox.checkbox-mode\:indeterminate input[type=checkbox]:after{--checkbox-icon-content:"\f88a"!important}.m3-checkbox.checkbox-state\:enabled input[type=checkbox]:after{--checkbox-icon-content:"\e5ca";--checkbox-opacity:var(--opacity-100)}.m3-checkbox.checkbox-state\:unselected-disabled input[type=checkbox]{--checkbox-border-color:color-mix(in srgb,var(--color-base-8),var(--checkbox-transparent-38));--checkbox-text-color:color-mix(in srgb,var(--color-base-8),var(--checkbox-transparent-38))}.m3-checkbox.checkbox-state\:hovered input[type=checkbox]:before{--checkbox-outline-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-100));--checkbox-main-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-92));--checkbox-opacity:var(--opacity-100)}.m3-checkbox.checkbox-state\:focused input[type=checkbox]:before{--checkbox-outline-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-0));--checkbox-main-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-100));--checkbox-opacity:var(--opacity-100)}.m3-checkbox.checkbox-state\:pressed input[type=checkbox]:before{--checkbox-outline-color:color-mix(in srgb,var(--color-main-2),var(--checkbox-transparent-100));--checkbox-main-color:var(--background-gradient);--checkbox-opacity:var(--opacity-90)}.m3-radio{--radio-size:20px;--radio-touch-size:48px;--radio-stroke-width:2px;--radio-inner-stroke-width:5px;--radio-inner-dot-size:10px;--radio-spacing-label:15px;--radio-label-size:15px;--radio-display:inline-flex;--radio-align-items:center;--radio-cursor:pointer;--radio-user-select:none;--radio-select-primary:var(--color-main-2);--radio-unselect-primary:var(--color-base-9);--radio-focus-ring:3px;--radio-transform:translate(-50%,-50%);--radio-pointer:none;--radio-box-sizing:border-box;--radio-transition:all 180ms ease;--radio-border-color:var(--radio-unselect-primary);--radio-border-color-checked:var(--radio-select-primary);--radio-box-shadow:none;--radio-background-color:transparent;--radio-outline:none;--radio-outline-offset:0;--radio-outline-offset-focus:5px;--alpha-1:8%;--alpha-2:10%;--alpha-3:62%;--transparent-1:10%;--transparent-2:90%;--transparent-3:92%;--transparent-disabled:62%}@media (prefers-color-scheme:dark){.m3-radio{--radio-select-primary:var(--color-main-1)}}.m3-radio{align-items:var(--radio-align-items);cursor:var(--radio-cursor);display:var(--radio-display);gap:var(--radio-spacing-label);user-select:var(--radio-user-select)}.m3-radio input[type=radio]{appearance:none;background-color:var(--radio-background-color);border:none;cursor:var(--radio-cursor);height:var(--radio-touch-size);margin:var(--scale-0);position:relative;width:var(--radio-touch-size)}.m3-radio input[type=radio]:after,.m3-radio input[type=radio]:before{box-sizing:var(--radio-box-sizing);content:"";left:50%;pointer-events:var(--radio-pointer);position:absolute;top:50%;transform:var(--radio-transform);transition:var(--radio-transition)}.m3-radio input[type=radio]:before{background-color:var(--radio-background-color);border:var(--radio-stroke-width) solid var(--radio-unselect-primary);border-radius:var(--radius-8);box-shadow:var(--radio-box-shadow);height:var(--radio-size);outline:var(--radio-outline);outline-offset:var(--radio-outline-offset);width:var(--radio-size)}.m3-radio input[type=radio]:after{border:var(--radio-inner-stroke-width) solid var(--radio-select-primary);border-radius:var(--radius-8);height:0;opacity:var(--opacity-0);width:0}.m3-radio input[type=radio]:checked:before{border-color:var(--radio-border-color-checked)}.m3-radio input[type=radio]:checked:after{opacity:var(--opacity-100)}.m3-radio input[type=radio]:hover:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-3));--radio-background-color:color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-2))}.m3-radio input[type=radio]:checked:hover:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-3));--radio-background-color:color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-2))}.m3-radio input[type=radio]:active:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-2));--radio-background-color:color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-2))}.m3-radio input[type=radio]:checked:active:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-2));--radio-background-color:color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-2))}.m3-radio input[type=radio]:focus:before{--radio-outline:1px solid color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-1));--radio-outline-offset:var(--radio-outline-offset-focus)}.m3-radio input[type=radio]:checked:focus:before{--radio-outline:1px solid color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-1));--radio-outline-offset:var(--radio-outline-offset-focus)}.m3-radio input[type=radio]:disabled{box-shadow:none;cursor:not-allowed}.m3-radio input[type=radio]:checked:disabled:after,.m3-radio input[type=radio]:checked:disabled:before,.m3-radio input[type=radio]:disabled:after,.m3-radio input[type=radio]:disabled:before{--radio-border-color:color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-disabled));background-color:transparent;box-shadow:none}.m3-radio .m3-radio-label{color:var(--radio-unselect-primary);font-size:var(--radio-label-size)}.radio\:hover input[type=radio]:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-3));--radio-background-color:color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-2))}.radio\:hover input[type=radio]:checked:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-3));--radio-background-color:color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-2))}.radio\:press input[type=radio]:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-2));--radio-background-color:color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-2))}.radio\:press input[type=radio]:checked:before{--radio-box-shadow:0 0 0 10px color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-2));--radio-background-color:color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-2))}.radio\:focus input[type=radio]:before{--radio-outline:1px solid color-mix(in srgb,var(--radio-unselect-primary),transparent var(--transparent-1));--radio-outline-offset:var(--radio-outline-offset-focus)}.radio\:focus input[type=radio]:checked:before{--radio-outline:1px solid color-mix(in srgb,var(--radio-select-primary),transparent var(--transparent-1));--radio-outline-offset:var(--radio-outline-offset-focus)}.m3-card{--overflow-hidden:hidden;--cursor-pointer:pointer;--cursor-grab:grab;--cursor-not-allowed:not-allowed;--card-background:var(--color-base-1);--card-width:auto;--card-height:auto;--card-padding:var(--space-10);--card-border:none;--card-border-radius:var(--radius-xl);--card-box-shadow:0 var(--space-1) var(--space-3) rgba(0,0,0,var(--opacity-40)),0 var(--space-1) var(--space-2) rgba(0,0,0,var(--opacity-50));--card-opacity:var(--opacity-100);--card-outline:none;--card-outline-offset:0;--card-transform:none;--card-focused-outline-color:var(--color-base-8);--card-overflow:var(--overflow-hidden);--card-cursor:var(--cursor-pointer);--card-transition:box-shadow var(--duration-5) var(--ease-out),transform var(--duration-5) var(--ease-out),opacity var(--duration-5) var(--ease-out);--card-content-padding:var(--space-10);--card-headline-margin-bottom:var(--space-3);--card-headline-font-size:var(--size-15);--card-headline-font-weight:var(--font-weight-semibold);--card-headline-color:var(--color-base-10);--card-headline-line-height:var(--size-19);--card-headline-letter-spacing:0;--card-subhead-margin-bottom:var(--space-3);--card-subhead-font-size:var(--size-10);--card-subhead-font-weight:var(--font-weight-normal);--card-subhead-color:var(--color-base-8);--card-subhead-line-height:var(--size-13);--card-subhead-letter-spacing:0;--card-supporting-text-font-size:var(--size-6);--card-supporting-text-font-weight:var(--font-weight-normal);--card-supporting-text-color:var(--color-base-10);--card-supporting-text-line-height:var(--size-9);--card-supporting-text-margin-bottom:var(--space-2);--card-supporting-text-letter-spacing:0}@media (prefers-color-scheme:dark){.m3-card{--card-background:var(--color-base-2);--card-headline-color:var(--color-base-10);--card-subhead-color:var(--color-base-8);--card-supporting-text-color:var(--color-base-9)}.m3-card.card-state\:focused{--card-focused-outline-color:var(--color-accent-2)}}.m3-card{background:var(--card-background);border:var(--card-border);border-radius:var(--card-border-radius);box-shadow:var(--card-box-shadow);cursor:var(--card-cursor);height:var(--card-height);opacity:var(--card-opacity);outline:var(--card-outline);outline-offset:var(--card-outline-offset);overflow:var(--card-overflow);padding:var(--card-padding);transform:var(--card-transform);transition:var(--card-transition);width:var(--card-width)}.m3-card.card-state\:enabled{--card-opacity:var(--opacity-100);--card-box-shadow:0px solid #000}.m3-card.card-state\:disabled,.m3-card.card-state\:disabled button{--card-opacity:var(--opacity-60);--card-cursor:var(--cursor-not-allowed)}.m3-card.card-state\:hovered{--card-opacity:var(--opacity-90)}.m3-card.card-state\:focused,.m3-card.card-state\:hovered{--card-box-shadow:0 var(--space-4) var(--space-4) rgba(0,0,0,.16),0 var(--space-2) var(--space-4) rgba(0,0,0,.23)}.m3-card.card-state\:focused{--card-outline:3px solid var(--card-focused-outline-color);--card-outline-offset:var(--space-2);--card-opacity:var(--opacity-90)}.m3-card.card-state\:dragged{--card-box-shadow:0 var(--space-4) var(--space-10) rgba(0,0,0,var(--opacity-25)),0 var(--space-6) var(--space-6) rgba(0,0,0,var(--opacity-30));--card-transform:scale(1.02);--card-opacity:var(--opacity-80);--card-cursor:var(--cursor-grap)}.m3-card .content{padding:var(--card-content-padding)}.m3-card .headline{color:var(--card-headline-color);font-size:var(--card-headline-font-size);font-weight:var(--card-headline-font-semibold);letter-spacing:var(--card-headline-letter-spacing);line-height:var(--card-headline-line-height);margin-bottom:var(--card-headline-margin-bottom)}.m3-card .subhead{color:var(--card-subhead-color);font-size:var(--card-subhead-font-size);font-weight:var(--card-subhead-font-weight);letter-spacing:var(--card-subhead-letter-spacing);line-height:var(--card-subhead-line-height);margin-bottom:var(--card-subhead-margin-bottom)}.m3-card .supporting-text{color:var(--card-supporting-text-color);font-size:var(--card-supporting-text-font-size);font-weight:var(--card-supporting-text-font-weight);letter-spacing:var(--card-supporting-text-letter-spacing);line-height:var(--card-supporting-text-line-height);margin-bottom:var(--card-supporting-text-margin-bottom)}.m3-dialog{--dialog-spec-min-width:280px;--dialog-spec-max-width:560px;--dialog-bg-color:var(--color-base-3);--dialog-radius:var(--space-17);--dialog-padding:var(--space-15);--dialog-min-width:var(--dialog-spec-min-width);--dialog-max-width:var(--dialog-spec-max-width);--dialog-color:var(--color-base-8);--dialog-headline-font-color:var(--color-base-10);--dialog-headline-font-size:var(--space-15);--dialog-headline-font-weight:var(--font-weight-4);--dialog-headline-margin-bottom:var(--space-14);--dialog-content-font-color:var(--color-base-8);--dialog-content-font-size:var(--space-8);--dialog-content-margin-bottom:var(--space-15);--dialog-content-line-height:var(--space-13);--dialog-actions-gap:var(--space-4);--dialog-btn-color:var(--color-sub-2);--dialog-btn-padding:var(--space-12) var(--space-10);--dialog-hovered-bg:color-mix(in srgb,var(--dialog-btn-color) 8%,transparent);--dialog-focused-bg:color-mix(in srgb,var(--dialog-btn-color) 10%,transparent);--dialog-pressed-bg:color-mix(in srgb,var(--dialog-btn-color) 10%,transparent)}@media (prefers-color-scheme:dark){.m3-dialog{--dialog-bg-color:var(--color-base-3);--dialog-headline-font-color:var(--color-base-10);--dialog-content-font-color:var(--color-base-8);--dialog-btn-color:var(--color-sub-2)}}.m3-dialog{background:var(--dialog-bg-color);border-radius:var(--dialog-radius);box-shadow:0 0 0 100vmax rgba(0,0,0,.4);box-sizing:border-box;color:var(--dialog-color);flex-direction:column;font-family:Roboto,Segoe UI,Helvetica Neue,Arial,sans-serif;height:fit-content;inset:0;margin:auto;max-width:var(--dialog-max-width);min-width:var(--dialog-min-width);padding:var(--dialog-padding);position:fixed;width:fit-content;.header,>:first-child{color:var(--dialog-headline-font-color);font-size:var(--dialog-headline-font-size);font-weight:var(--dialog-headline-font-weight);margin:0 0 var(--dialog-headline-margin-bottom) 0}.content,>:nth-child(2){color:var(--dialog-content-font-color);font-size:var(--dialog-content-font-size);line-height:var(--dialog-content-line-height);margin:0 0 var(--dialog-content-margin-bottom) 0}.actions,>:nth-child(3){display:flex;gap:var(--dialog-actions-gap);justify-content:flex-end}}
1
+
2
+ @import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");
3
+ @import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");
4
+ @import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");
5
+ /* ===== NEWTIL CSS COMPONENTS ===== */
6
+ /* Material 3 Components */
7
+ /*
8
+ === Google Material Icons - Essential 버전 ===
9
+ 총 60개 핵심 아이콘
10
+ 크기: ~3180바이트 (압축 전)
11
+
12
+ 실제 프로젝트에서 자주 사용하는 핵심 아이콘들만 선별했습니다.
13
+ 더 많은 아이콘이 필요하면 material-icons-github.css를 사용하세요.
14
+
15
+ 사용법:
16
+ <i class="n-icon icon:home"></i>
17
+ <button class="n-btn n-icon icon:search">검색</button>
18
+ */
19
+ /* Material Icons 폰트 로드 */
20
+ /* === NAVIGATION === */
21
+ .icon\:home::before {
22
+ content: "\e88a";
23
+ }
24
+ .icon\:menu::before {
25
+ content: "\e5d2";
26
+ }
27
+ .icon\:close::before {
28
+ content: "\e5cd";
29
+ }
30
+ .icon\:arrow_back::before {
31
+ content: "\e5c4";
32
+ }
33
+ .icon\:arrow_forward::before {
34
+ content: "\e5c8";
35
+ }
36
+ .icon\:expand_more::before {
37
+ content: "\e5cf";
38
+ }
39
+ .icon\:expand_less::before {
40
+ content: "\e5ce";
41
+ }
42
+ .icon\:chevron_left::before {
43
+ content: "\e5cb";
44
+ }
45
+ .icon\:chevron_right::before {
46
+ content: "\e5cc";
47
+ }
48
+ .icon\:more_vert::before {
49
+ content: "\e5d4";
50
+ }
51
+ .icon\:more_horiz::before {
52
+ content: "\e5d3";
53
+ }
54
+ .icon\:refresh::before {
55
+ content: "\e5d5";
56
+ }
57
+ .icon\:settings::before {
58
+ content: "\e8b8";
59
+ }
60
+ .icon\:apps::before {
61
+ content: "\e5c3";
62
+ }
63
+ .icon\:launch::before {
64
+ content: "\e895";
65
+ }
66
+ /* === ACTIONS === */
67
+ .icon\:add::before {
68
+ content: "\e145";
69
+ }
70
+ .icon\:remove::before {
71
+ content: "\e15b";
72
+ }
73
+ .icon\:edit::before {
74
+ content: "\e3c9";
75
+ }
76
+ .icon\:delete::before {
77
+ content: "\e872";
78
+ }
79
+ .icon\:save::before {
80
+ content: "\e161";
81
+ }
82
+ .icon\:check::before {
83
+ content: "\e5ca";
84
+ }
85
+ .icon\:clear::before {
86
+ content: "\e14c";
87
+ }
88
+ .icon\:cancel::before {
89
+ content: "\e5c9";
90
+ }
91
+ .icon\:done::before {
92
+ content: "\e876";
93
+ }
94
+ .icon\:search::before {
95
+ content: "\e8b6";
96
+ }
97
+ .icon\:share::before {
98
+ content: "\e80d";
99
+ }
100
+ .icon\:download::before {
101
+ content: "\e2c4";
102
+ }
103
+ .icon\:upload::before {
104
+ content: "\e2c6";
105
+ }
106
+ .icon\:copy::before {
107
+ content: "\e14d";
108
+ }
109
+ .icon\:visibility::before {
110
+ content: "\e8f4";
111
+ }
112
+ .icon\:visibility_off::before {
113
+ content: "\e8f5";
114
+ }
115
+ .icon\:lock::before {
116
+ content: "\e897";
117
+ }
118
+ .icon\:lock_open::before {
119
+ content: "\e898";
120
+ }
121
+ .icon\:sync::before {
122
+ content: "\e627";
123
+ }
124
+ .icon\:info::before {
125
+ content: "\e88e";
126
+ }
127
+ /* === COMMUNICATION === */
128
+ .icon\:email::before {
129
+ content: "\e0be";
130
+ }
131
+ .icon\:phone::before {
132
+ content: "\e0cd";
133
+ }
134
+ .icon\:chat::before {
135
+ content: "\e0b7";
136
+ }
137
+ .icon\:notifications::before {
138
+ content: "\e7f4";
139
+ }
140
+ .icon\:send::before {
141
+ content: "\e163";
142
+ }
143
+ .icon\:reply::before {
144
+ content: "\e15e";
145
+ }
146
+ .icon\:help::before {
147
+ content: "\e887";
148
+ }
149
+ .icon\:feedback::before {
150
+ content: "\e87f";
151
+ }
152
+ /* === MEDIA === */
153
+ .icon\:play_arrow::before {
154
+ content: "\e037";
155
+ }
156
+ .icon\:pause::before {
157
+ content: "\e034";
158
+ }
159
+ .icon\:stop::before {
160
+ content: "\e047";
161
+ }
162
+ .icon\:volume_up::before {
163
+ content: "\e050";
164
+ }
165
+ .icon\:volume_off::before {
166
+ content: "\e04f";
167
+ }
168
+ .icon\:mic::before {
169
+ content: "\e029";
170
+ }
171
+ .icon\:mic_off::before {
172
+ content: "\e02b";
173
+ }
174
+ /* === FILES === */
175
+ .icon\:folder::before {
176
+ content: "\e2c7";
177
+ }
178
+ .icon\:folder_open::before {
179
+ content: "\e2c8";
180
+ }
181
+ .icon\:attach_file::before {
182
+ content: "\e226";
183
+ }
184
+ .icon\:cloud::before {
185
+ content: "\e2bd";
186
+ }
187
+ .icon\:description::before {
188
+ content: "\e873";
189
+ }
190
+ /* === SOCIAL === */
191
+ .icon\:person::before {
192
+ content: "\e7fd";
193
+ }
194
+ .icon\:people::before {
195
+ content: "\e7fb";
196
+ }
197
+ .icon\:favorite::before {
198
+ content: "\e87d";
199
+ }
200
+ .icon\:star::before {
201
+ content: "\e838";
202
+ }
203
+ .icon\:thumb_up::before {
204
+ content: "\e8dc";
205
+ }
206
+ :root {
207
+ --icon-size: 24px;
208
+ --icon-family: "Material Symbols Outlined";
209
+ --icon-color: var(--color-base-9);
210
+ --icon-fill: 0;
211
+ --icon-weight: 400;
212
+ --icon-grade: 0;
213
+ --icon-optical-size: 24;
214
+ }
215
+ @media (prefers-color-scheme: dark) {
216
+ :root {
217
+ --icon-color: var(--color-base-2);
218
+ }
219
+ }
220
+ .m3-icon {
221
+ display: inline-flex;
222
+ width: var(--icon-size);
223
+ height: var(--icon-size);
224
+ overflow: hidden;
225
+ align-items: center;
226
+ /* justify-content: center; */
227
+
228
+ visibility: visible;
229
+
230
+ transition: all 0.2s ease-in-out;
231
+
232
+ &::before {
233
+
234
+ flex-shrink: 0;
235
+
236
+ display: inline-flex;
237
+ align-items: center;
238
+ vertical-align: top;
239
+
240
+ width: var(--icon-size);
241
+ height: var(--icon-size);
242
+ overflow: hidden;
243
+
244
+
245
+ color: inherit;
246
+ font-family: var(--icon-family);
247
+ font-size: var(--icon-size);
248
+ font-variation-settings:
249
+ "FILL" var(--icon-fill, 0),
250
+ "wght" var(--icon-weight, 400),
251
+ "GRAD" var(--icon-grade, 0),
252
+ "OPSZ" var(--icon-optical-size, 24);
253
+ }
254
+
255
+ &.hover:not(.n-deco):hover {
256
+ border-radius: 50%;
257
+ background-color: var(--color-base-3);
258
+ transform: scale(1.4);
259
+
260
+ &::before {
261
+ transform: scale(0.72);
262
+ }
263
+ }
264
+
265
+
266
+ /* === style =============================== */
267
+ &.icon-style\:outlined::before { --icon-family: "Material Symbols Outlined"; }
268
+ &.icon-style\:rounded::before { --icon-family: "Material Symbols Rounded"; }
269
+ &.icon-style\:sharp::before { --icon-family: "Material Symbols Sharp"; }
270
+
271
+ /* ==== variation/filled =============================== */
272
+ &.icon-filled\:0::before { --icon-fill: 0; }
273
+ &.icon-filled\:1::before { --icon-fill: 1; }
274
+
275
+ /* ==== variation/weight =============================== */
276
+ &.icon-weight\:100::before { --icon-weight: 100; }
277
+ &.icon-weight\:200::before { --icon-weight: 200; }
278
+ &.icon-weight\:300::before { --icon-weight: 300; }
279
+ &.icon-weight\:400::before { --icon-weight: 400; }
280
+ &.icon-weight\:500::before { --icon-weight: 500; }
281
+ &.icon-weight\:600::before { --icon-weight: 600; }
282
+ &.icon-weight\:700::before { --icon-weight: 700; }
283
+
284
+ /* ==== variation/grade =============================== */
285
+ &.icon-grade\:-25::before { --icon-grade: -25; }
286
+ &.icon-grade\:0::before { --icon-grade: 0; }
287
+ &.icon-grade\:200::before { --icon-grade: 200; }
288
+
289
+ /* ==== variation/optical-size =============================== */
290
+ &.icon-optical-size\:20::before { --icon-optical-size: 20px; }
291
+ &.icon-optical-size\:24::before { --icon-optical-size: 24px; }
292
+ &.icon-optical-size\:40::before { --icon-optical-size: 40px; }
293
+ &.icon-optical-size\:48::before { --icon-optical-size: 48px; }
294
+
295
+
296
+ /* === color ======================================= */
297
+ &.icon-color\:main-1::before { color: var(--color-main-1); }
298
+ &.icon-color\:main-2::before { color: var(--color-main-2); }
299
+ &.icon-color\:main-3::before { color: var(--color-main-3); }
300
+ &.icon-color\:sub-1::before { color: var(--color-sub-1); }
301
+ &.icon-color\:sub-2::before { color: var(--color-sub-2); }
302
+ &.icon-color\:sub-3::before { color: var(--color-sub-3); }
303
+ &.icon-color\:accent-1::before { color: var(--color-accent-1); }
304
+ &.icon-color\:accent-2::before { color: var(--color-accent-2); }
305
+ &.icon-color\:accent-3::before { color: var(--color-accent-3); }
306
+ &.icon-color\:base-1::before { color: var(--color-base-1); }
307
+ &.icon-color\:base-2::before { color: var(--color-base-2); }
308
+ &.icon-color\:base-3::before { color: var(--color-base-3); }
309
+ &.icon-color\:base-4::before { color: var(--color-base-4); }
310
+ &.icon-color\:base-5::before { color: var(--color-base-5); }
311
+ &.icon-color\:base-6::before { color: var(--color-base-6); }
312
+ &.icon-color\:base-7::before { color: var(--color-base-7); }
313
+ &.icon-color\:base-8::before { color: var(--color-base-8); }
314
+ &.icon-color\:base-9::before { color: var(--color-base-9); }
315
+ &.icon-color\:base-10::before { color: var(--color-base-10); }
316
+
317
+
318
+ /* ---- icon-size ------------------------------------------------- */
319
+ &.icon-size\:20 { --icon-size: 20px; }
320
+ &.icon-size\:24 { --icon-size: 24px; }
321
+ &.icon-size\:40 { --icon-size: 40px; }
322
+ &.icon-size\:48 { --icon-size: 48px; }
323
+
324
+
325
+ }
326
+ @media (min-width: 640px) {
327
+
328
+ }
329
+ @media (min-width: 768px) {
330
+
331
+ }
332
+ @media (min-width: 1024px) {
333
+
334
+ }
335
+ @media (min-width: 1280px) {
336
+
337
+ }
338
+ /* ====== M3 Button options (spec overview) =====================
339
+ Size : Small (default) | XS | M | L | XL
340
+ Shape : Round (default) | Square
341
+ Color : Filled (default) | Elevated | Tonal | Outlined | Text
342
+ State : Enabled (default) | Disabled | Hover | Focus | Active(Pressed) */
343
+ /* ================Variable=====================*/
344
+ .m3-btn {
345
+ /* boxing */
346
+ --btn-gap: 2px;
347
+ --btn-margin-top: 5px;
348
+ --btn-fill: 1;
349
+
350
+ /* color */
351
+ --btn-background: rgba(var(--rgb-main-2), 1);
352
+ --btn-color: rgb(var(--rgb-base-1));
353
+ --btn-box-shadow: none;
354
+ --btn-border: 0;
355
+ --btn-outline: none;
356
+ --btn-outline-offset: 0px;
357
+ --btn-border-radius: 999px;
358
+
359
+ /* size */
360
+ --btn-height: var(--space-22);
361
+ --btn-padding: 0 var(--space-10);
362
+
363
+ /* content */
364
+ --btn-font-size: var(--space-8);
365
+ --btn-font-weight: var(--font-weight-medium);
366
+ --btn-line-height: var(--space-13);
367
+ --btn-letter-spacing: 0.1px;
368
+ }
369
+ /* ================Dark Mode===================*/
370
+ @media (prefers-color-scheme: dark) {
371
+ .m3-btn {
372
+ /* color - default dark mode variables */
373
+ --btn-background-dark: rgba(var(--rgb-main-2), 1);
374
+ --btn-color-dark: rgb(var(--rgb-base-1));
375
+ --btn-box-shadow-dark: none;
376
+ --btn-border-dark: 0;
377
+ --btn-outline-dark: none;
378
+ }
379
+
380
+ .m3-btn:disabled,
381
+ .m3-btn.btn-state\:disabled {
382
+ --btn-background-dark: rgba(var(--rgb-main-3), 0.3);
383
+ --btn-color-dark: rgba(var(--rgb-main-1), 0.3);
384
+ --btn-box-shadow-dark: none;
385
+ --btn-border-dark: 0;
386
+ --btn-outline-dark: none;
387
+ }
388
+
389
+ .m3-btn:focus:not(:active),
390
+ .m3-btn.btn-state\:focus:not(:active) {
391
+ --btn-border-dark: 2px solid rgb(var(--rgb-base-1));
392
+ --btn-outline-dark: 2px solid rgb(var(--rgb-main-2));
393
+ }
394
+
395
+ .m3-btn:hover,
396
+ .m3-btn.btn-state\:hover {
397
+ --btn-background-dark: rgba(var(--rgb-main-1), 1);
398
+ }
399
+
400
+ .m3-btn:active,
401
+ .m3-btn.btn-state\:active {
402
+ --btn-background-dark: radial-gradient(107% 112% at 65% 103%,
403
+ rgba(var(--rgb-main-2), 1) 65%,
404
+ rgba(var(--rgb-main-1), 1) 66%);
405
+ --btn-border-radius-dark: var(--radius-lg);
406
+ }
407
+
408
+ .btn\:elevated {
409
+ /* boxing */
410
+ --btn-background-dark: rgba(var(--rgb-main-3), 0.3);
411
+ --btn-box-shadow-dark: 0px 1px 2px 0.5px rgba(var(--rgb-base-10), 1);
412
+
413
+ /* content */
414
+ --btn-color-dark: rgb(var(--rgb-main-1));
415
+ }
416
+
417
+ .btn\:tonal {
418
+ --btn-background-dark: rgba(var(--rgb-main-2), 0.5);
419
+ --btn-color-dark: rgb(var(--rgb-main-1));
420
+ }
421
+
422
+ .btn\:outlined {
423
+ --btn-background-dark: none;
424
+ --btn-color-dark: rgb(var(--rgb-main-1));
425
+ --btn-outline-dark: 0.2px solid rgba(var(--rgb-main-3), 0.7);
426
+ }
427
+
428
+ .btn\:text {
429
+ --btn-background-dark: none;
430
+ --btn-color-dark: rgb(var(--rgb-main-2));
431
+ }
432
+
433
+ /* ----------Elevated State------------ */
434
+ .btn\:elevated:focus:not(:active),
435
+ .btn\:elevated.btn-state\:focus:not(:active) {
436
+ --btn-border-dark: 2px solid rgb(var(--rgb-main-3));
437
+ --btn-outline-dark: 2px solid rgb(var(--rgb-base-1));
438
+ }
439
+
440
+ .btn\:elevated:hover,
441
+ .btn\:elevated.btn-state\:hover {
442
+ --btn-background-dark: rgba(var(--rgb-main-2), 0.3);
443
+ }
444
+
445
+ .btn\:elevated:active,
446
+ .btn\:elevated.btn-state\:active {
447
+ --btn-background-dark: radial-gradient(144% 100% at 80% 94%,
448
+ rgba(var(--rgb-main-3), 0.5) 65%,
449
+ rgba(var(--rgb-main-3), 1) 66%);
450
+ --btn-border-radius-dark: var(--radius-lg);
451
+ }
452
+
453
+ /* ----------Tonal State---------------- */
454
+ .btn\:tonal:focus:not(:active),
455
+ .btn\:tonal.btn-state\:focus:not(:active) {
456
+ --btn-border-dark: 2px solid rgb(var(--rgb-base-1));
457
+ --btn-outline-dark: 3px solid rgba(var(--rgb-main-2), 0.5);
458
+ }
459
+
460
+ .btn\:tonal:hover,
461
+ .btn\:tonal.btn-state\:hover {
462
+ --btn-background-dark: rgba(var(--rgb-main-3), 0.7);
463
+ }
464
+
465
+ .btn\:tonal:active,
466
+ .btn\:tonal.btn-state\:active {
467
+ --btn-background-dark: radial-gradient(107% 112% at 65% 103%,
468
+ rgba(var(--rgb-main-2), 0.5) 65%,
469
+ rgba(var(--rgb-main-3), 0.7) 66%);
470
+ --btn-border-radius-dark: var(--radius-lg);
471
+ }
472
+
473
+ /* ----------Outlined State------------ */
474
+ .btn\:outlined:focus:not(:active),
475
+ .btn\:outlined.btn-state\:focus:not(:active) {
476
+ --btn-border-dark: 2px solid rgb(var(--rgb-main-1));
477
+ --btn-outline-dark: 0.1px solid rgba(var(--rgb-main-1), 0.5);
478
+ --btn-outline-offset-dark: -5px;
479
+ }
480
+
481
+ .btn\:outlined:hover,
482
+ .btn\:outlined.btn-state\:hover {
483
+ --btn-background-dark: rgba(var(--rgb-main-3), 0.5);
484
+ }
485
+
486
+ .btn\:outlined:active,
487
+ .btn\:outlined.btn-state\:active {
488
+ --btn-background-dark: radial-gradient(107% 112% at 65% 103%,
489
+ rgba(var(--rgb-main-2), 0.5) 65%,
490
+ rgba(var(--rgb-main-2), 0.3) 66%);
491
+ --btn-border-radius-dark: var(--radius-lg);
492
+ }
493
+
494
+ /* ----------Text State----------------- */
495
+ .btn\:text:focus:not(:active),
496
+ .btn\:text.btn-state\:focus:not(:active) {
497
+ --btn-border-dark: 2px solid rgb(var(--rgb-main-1));
498
+ --btn-outline-dark: 0.1px solid rgba(var(--rgb-main-1), 0.5);
499
+ --btn-outline-offset-dark: -5px;
500
+ }
501
+
502
+ .btn\:text:hover,
503
+ .btn\:text.btn-state\:hover {
504
+ --btn-background-dark: rgba(var(--rgb-main-3), 0.5);
505
+ }
506
+
507
+ .btn\:text:active,
508
+ .btn\:text.btn-state\:active {
509
+ --btn-background-dark: radial-gradient(107% 112% at 65% 103%,
510
+ rgba(var(--rgb-main-2), 0.5) 65%,
511
+ rgba(var(--rgb-main-2), 0.3) 66%);
512
+ --btn-border-radius-dark: var(--radius-lg);
513
+ }
514
+ }
515
+ /* ================Base Type====================*/
516
+ .m3-btn {
517
+ /* boxing */
518
+ border-radius: var(--btn-border-radius);
519
+ height: var(--btn-height);
520
+ padding: var(--btn-padding);
521
+ margin-top: var(--btn-margin-top);
522
+ gap: var(--btn-gap);
523
+
524
+ /* layout */
525
+ display: inline-flex;
526
+ align-items: center;
527
+ justify-content: center;
528
+
529
+ /* color */
530
+ background: var(--btn-background-dark, var(--btn-background));
531
+ color: var(--btn-color-dark, var(--btn-color));
532
+ box-shadow: var(--btn-box-shadow-dark, var(--btn-box-shadow));
533
+ border: var(--btn-border-dark, var(--btn-border));
534
+ outline: var(--btn-outline-dark, var(--btn-outline));
535
+ outline-offset: var(--btn-outline-offset);
536
+
537
+ /* content */
538
+ font-family: roboto;
539
+ font-variation-settings: 'FILL' var(--btn-fill);
540
+ font-size: var(--btn-font-size);
541
+ font-weight: var(--btn-font-weight);
542
+ line-height: var(--btn-line-height);
543
+ letter-spacing: var(--btn-letter-spacing);
544
+
545
+ /* effect */
546
+ transition: background-color 0.3s ease, transform 0.3s ease;
547
+ }
548
+ /* ================Light Mode===================*/
549
+ .m3-btn:disabled,
550
+ .m3-btn.btn-state\:disabled {
551
+ --btn-background: rgba(var(--rgb-base-10), 0.08);
552
+ --btn-color: rgba(var(--rgb-base-10), 0.2);
553
+ --btn-box-shadow: none;
554
+ --btn-border: none;
555
+ --btn-outline: none;
556
+ }
557
+ .m3-btn:focus:not(:active),
558
+ .btn-state\:focus:not(:active) {
559
+ --btn-border: 2px solid rgba(var(--rgb-base-1), 1);
560
+ --btn-outline: 2.5px solid rgba(var(--rgb-main-2), 1);
561
+ }
562
+ .m3-btn:hover,
563
+ .btn-state\:hover {
564
+ --btn-background: rgba(var(--rgb-main-2), 0.7);
565
+ }
566
+ .m3-btn:active,
567
+ .btn-state\:active {
568
+ --btn-background: radial-gradient(144% 100% at 80% 94%,
569
+ rgba(var(--rgb-main-2), 0.7) 65%,
570
+ rgba(var(--rgb-main-2), 1) 66%);
571
+ --btn-border-radius: var(--radius-lg);
572
+ }
573
+ .btn\:elevated {
574
+ /* boxing */
575
+ --btn-background: linear-gradient(161deg,
576
+ rgba(var(--rgb-main-1), 0.01) 0%,
577
+ rgba(var(--rgb-main-1), 0.2) 100%);
578
+ --btn-box-shadow: 0px 0.7px 2px 0.5px rgba(var(--rgb-base-10), 0.5);
579
+
580
+ /* content */
581
+ --btn-color: rgb(var(--rgb-main-2));
582
+ }
583
+ .btn\:tonal {
584
+ /* boxing */
585
+ --btn-background: radial-gradient(144% 100% at 80% 94%,
586
+ rgba(var(--rgb-main-1), 1) 0%,
587
+ rgba(var(--rgb-main-1), 0.7) 100%);
588
+
589
+ /* content */
590
+ --btn-color: rgb(var(--rgb-main-3));
591
+ }
592
+ .btn\:outlined {
593
+ /* boxing */
594
+ --btn-background: none;
595
+ --btn-border: 1px solid rgba(var(--rgb-main-3), 0.2);
596
+
597
+ /* content */
598
+ --btn-color: rgb(var(--rgb-main-3));
599
+ }
600
+ .btn\:text {
601
+ /* boxing */
602
+ --btn-background: none;
603
+ --btn-border: none;
604
+ --btn-outline: none;
605
+
606
+ /* content */
607
+ --btn-color: rgb(var(--rgb-main-2));
608
+ }
609
+ /* ----------Elevated State------------ */
610
+ .btn\:elevated:focus:not(:active),
611
+ .btn\:elevated.btn-state\:focus:not(:active) {
612
+ --btn-border: 2px solid rgb(var(--rgb-main-3));
613
+ --btn-outline: 0.3px solid rgba(var(--rgb-main-3), 0.3);
614
+ --btn-outline-offset: -4px;
615
+ }
616
+ .btn\:elevated:hover,
617
+ .btn\:elevated.btn-state\:hover {
618
+ --btn-background: linear-gradient(161deg,
619
+ rgba(var(--rgb-main-1), 0.1) 0%,
620
+ rgba(var(--rgb-main-1), 0.5) 100%);
621
+ }
622
+ .btn\:elevated:active,
623
+ .btn\:elevated.btn-state\:active {
624
+ --btn-background: radial-gradient(107% 112% at 65% 103%,
625
+ rgba(var(--rgb-main-1), 0.4) 65%,
626
+ rgba(var(--rgb-main-1), 0.2) 66%);
627
+ --btn-border-radius: var(--radius-lg);
628
+ }
629
+ /* ----------Tonal State---------------- */
630
+ .btn\:tonal:focus:not(:active),
631
+ .btn\:tonal.btn-state\:focus:not(:active) {
632
+ --btn-border: 2px solid rgb(var(--rgb-base-1));
633
+ --btn-outline: 2.5px solid rgb(var(--rgb-main-2));
634
+ }
635
+ .btn\:tonal:hover,
636
+ .btn\:tonal.btn-state\:hover {
637
+ --btn-background: linear-gradient(161deg,
638
+ rgba(var(--rgb-main-1), 0.5) 8%,
639
+ rgba(var(--rgb-main-1), 0.6) 81%);
640
+ }
641
+ .btn\:tonal:active,
642
+ .btn\:tonal.btn-state\:active {
643
+ --btn-background: radial-gradient(107% 112% at 65% 103%,
644
+ rgba(var(--rgb-main-1), 1) 65%,
645
+ rgba(var(--rgb-main-1), 0.8) 66%);
646
+ --btn-border-radius: var(--radius-lg);
647
+ }
648
+ /* ----------Outlined State------------ */
649
+ .btn\:outlined:focus:not(:active),
650
+ .btn\:outlined.btn-state\:focus:not(:active) {
651
+ --btn-border: 2px solid rgb(var(--rgb-main-3));
652
+ --btn-outline: 0.3px solid rgba(var(--rgb-main-3), 0.3);
653
+ --btn-outline-offset: -4px;
654
+ }
655
+ .btn\:outlined:hover,
656
+ .btn\:outlined.btn-state\:hover {
657
+ --btn-background: linear-gradient(161deg,
658
+ rgba(var(--rgb-main-1), 0.01) 0%,
659
+ rgba(var(--rgb-main-1), 0.2) 100%);
660
+ }
661
+ .btn\:outlined:active,
662
+ .btn\:outlined.btn-state\:active {
663
+ --btn-background: radial-gradient(107% 112% at 65% 103%,
664
+ rgba(var(--rgb-main-1), 0.4) 65%,
665
+ rgba(var(--rgb-main-1), 0.2) 66%);
666
+ --btn-border-radius: var(--radius-lg);
667
+ }
668
+ /* ----------Text State----------------- */
669
+ .btn\:text:focus:not(:active),
670
+ .btn\:text.btn-state\:focus:not(:active) {
671
+ --btn-border: 2px solid rgb(var(--rgb-main-3));
672
+ --btn-outline: 0.3px solid rgba(var(--rgb-main-3), 0.3);
673
+ --btn-outline-offset: -4px;
674
+ }
675
+ .btn\:text:hover,
676
+ .btn\:text.btn-state\:hover {
677
+ --btn-background: linear-gradient(161deg,
678
+ rgba(var(--rgb-main-1), 0.01) 0%,
679
+ rgba(var(--rgb-main-1), 0.2) 100%);
680
+ }
681
+ .btn\:text:active,
682
+ .btn\:text.btn-state\:active {
683
+ --btn-background: radial-gradient(107% 112% at 65% 103%,
684
+ rgba(var(--rgb-main-1), 0.4) 65%,
685
+ rgba(var(--rgb-main-1), 0.2) 66%);
686
+ --btn-border-radius: var(--radius-lg);
687
+ }
688
+ /* ================Button Size===================*/
689
+ .btn-shape\:square {
690
+ --btn-border-radius: 12px;
691
+ }
692
+ .btn-size\:xs {
693
+ /* boxing */
694
+ --btn-height: var(--space-19);
695
+ --btn-padding: 0 var(--space-6);
696
+
697
+ /* content */
698
+ --btn-font-size: var(--space-8);
699
+ --btn-font-weight: var(--font-weight-medium);
700
+ --btn-line-height: var(--space-13);
701
+ --btn-letter-spacing: 0.1px;
702
+ }
703
+ .btn-size\:xs.btn-shape\:square {
704
+ --btn-border-radius: 12px;
705
+ }
706
+ .btn-size\:m {
707
+ /* boxing */
708
+ --btn-height: var(--space-28);
709
+ --btn-padding: 0 var(--space-15);
710
+
711
+ /* content */
712
+ --btn-font-size: var(--space-10);
713
+ --btn-font-weight: var(--font-weight-medium);
714
+ --btn-line-height: var(--space-15);
715
+ --btn-letter-spacing: 0.15px;
716
+ }
717
+ .btn-size\:m.btn-shape\:square {
718
+ --btn-border-radius: 16px;
719
+ }
720
+ .btn-size\:l {
721
+ /* boxing */
722
+ --btn-height: var(--space-32);
723
+ --btn-padding: 0 var(--space-24);
724
+
725
+ /* content */
726
+ --btn-font-size: var(--space-15);
727
+ --btn-font-weight: 600;
728
+ --btn-line-height: var(--space-19);
729
+ --btn-letter-spacing: 0px;
730
+ }
731
+ .btn-size\:l.btn-shape\:square {
732
+ --btn-border-radius: 28px;
733
+ }
734
+ .btn-size\:xl {
735
+ /* boxing */
736
+ --btn-height: var(--space-35);
737
+ --btn-padding: 0 var(--space-29);
738
+
739
+ /* content */
740
+ --btn-font-size: var(--space-19);
741
+ --btn-font-weight: 600;
742
+ --btn-line-height: var(--space-22);
743
+ --btn-letter-spacing: 0px;
744
+ }
745
+ .btn-size\:xl.btn-shape\:square {
746
+ --btn-border-radius: 28px;
747
+ }
748
+ /* 체크박스 변수 */
749
+ .m3-checkbox {
750
+ --checkbox-main-color: var(--color-main-2);
751
+ --checkbox-icon-color: var(--color-white);
752
+ --checkbox-border-color: var(--color-base-8);
753
+ --checkbox-outline-color: var(--color-main-2);
754
+ --checkbox-text-color: var(--color-base-8);
755
+ --checkbox-opacity: var(--opacity-0);
756
+ --checkbox-icon-content: "\e5ca";
757
+ --checkbox-transparent-0: transparent 0%;
758
+ --checkbox-transparent-38: transparent 38%;
759
+ --checkbox-transparent-92: transparent 92%;
760
+ --checkbox-transparent-100: transparent 100%;
761
+ --background-gradient: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(106, 142, 41, 0.3) 50%, rgba(106, 142, 41, 0.5) 100%);
762
+ }
763
+ /* 다크모드 */
764
+ @media (prefers-color-scheme: dark) {
765
+ .m3-checkbox {
766
+ --checkbox-main-color: var(--color-main-1);
767
+ --checkbox-icon-color: var(--color-main-3);
768
+ --checkbox-outline-color: var(--color-main-1);
769
+ --color-main-2: var(--color-main-1);
770
+ --background-gradient: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(140, 186, 53, 0.3) 50%, rgba(140, 186, 53, 0.5) 100%);
771
+ }
772
+ }
773
+ /* 체크박스 동작 트랜지션 */
774
+ .m3-checkbox,
775
+ .m3-checkbox input[type="checkbox"]::after,
776
+ .m3-checkbox input[type="checkbox"]::before {
777
+ transition: all 0.3s ease;
778
+ }
779
+ .m3-checkbox {
780
+ display: inline-flex;
781
+ align-items: center;
782
+ padding: 15px;
783
+ cursor: pointer;
784
+ user-select: none;
785
+ font-size: 16px;
786
+ color: var(--checkbox-text-color);
787
+ }
788
+ .m3-checkbox input[type="checkbox"] {
789
+ appearance: none;
790
+ position: relative;
791
+ margin-right: 20px;
792
+ /* 크기/모양 */
793
+ width: 18px;
794
+ height: 18px;
795
+ border-radius: 2px;
796
+ border: 2px solid var(--checkbox-border-color);
797
+ box-sizing: border-box;
798
+ }
799
+ .m3-checkbox input[type="checkbox"]::after {
800
+ /* 레이아웃 */
801
+ display: flex;
802
+ justify-content: center;
803
+ align-items: center;
804
+ /* 크기/모양 */
805
+ width: inherit;
806
+ height: inherit;
807
+ position: absolute;
808
+ top: -2px;
809
+ left: -2px;
810
+ background-color: var(--checkbox-main-color);
811
+ border-color: var(--checkbox-main-color);
812
+ border-radius: 2px;
813
+ /* 컨텐츠 */
814
+ content: var(--checkbox-icon-content);
815
+ font-family: "Material Symbols Outlined";
816
+ font-size: 18px;
817
+ font-weight: var(--font-weight-medium);
818
+ color: var(--checkbox-icon-color);
819
+ opacity: var(--checkbox-opacity);
820
+ }
821
+ .m3-checkbox input[type="checkbox"]::before {
822
+ display: inline-flex;
823
+ /* 크기/모양 */
824
+ content: "";
825
+ width: 40px;
826
+ height: 40px;
827
+ position: absolute;
828
+ top: 50%;
829
+ left: 50%;
830
+ transform: translate(-50%, -50%);
831
+ border-radius: 50%;
832
+ outline: 3px solid var(--checkbox-outline-color);
833
+ background: var(--checkbox-main-color);
834
+ opacity: var(--checkbox-opacity);
835
+ }
836
+ /* ⬇️state별 변수 구간 */
837
+ .m3-checkbox input[type="checkbox"]:not(:disabled):checked::after {
838
+ --checkbox-icon-content: "\e5ca";
839
+ --checkbox-opacity: var(--opacity-100);
840
+ }
841
+ .m3-checkbox input[type="checkbox"]:disabled {
842
+ --checkbox-border-color: color-mix(in srgb, var(--color-base-8), var(--checkbox-transparent-38));
843
+ --checkbox-text-color: color-mix(in srgb, var(--color-base-8), var(--checkbox-transparent-38));
844
+ }
845
+ .m3-checkbox input[type="checkbox"]:not(:disabled):hover::before {
846
+ --checkbox-outline-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-100));
847
+ --checkbox-main-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-92));
848
+ --checkbox-opacity: var(--opacity-100);
849
+ }
850
+ .m3-checkbox input[type="checkbox"]:not(:disabled):focus::before {
851
+ --checkbox-outline-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-0));
852
+ --checkbox-main-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-100));
853
+ --checkbox-opacity: var(--opacity-100);
854
+ }
855
+ .m3-checkbox input[type="checkbox"]:not(:disabled):active::before {
856
+ --checkbox-outline-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-100));
857
+ --checkbox-main-color: var(--background-gradient);
858
+ --checkbox-opacity: var(--opacity-90);
859
+ }
860
+ .m3-checkbox.checkbox-mode\:indeterminate input[type="checkbox"]::after {
861
+ --checkbox-icon-content: "\f88a" !important;
862
+ }
863
+ /* ⬇️각 상태를 기본으로 하는 정적인 상태의 체크박스 */
864
+ .m3-checkbox.checkbox-state\:enabled input[type="checkbox"]::after {
865
+ --checkbox-icon-content: "\e5ca";
866
+ --checkbox-opacity: var(--opacity-100);
867
+ }
868
+ .m3-checkbox.checkbox-state\:unselected-disabled input[type="checkbox"] {
869
+ --checkbox-border-color: color-mix(in srgb, var(--color-base-8), var(--checkbox-transparent-38));
870
+ --checkbox-text-color: color-mix(in srgb, var(--color-base-8), var(--checkbox-transparent-38));
871
+ }
872
+ .m3-checkbox.checkbox-state\:hovered input[type="checkbox"]::before {
873
+ --checkbox-outline-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-100));
874
+ --checkbox-main-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-92));
875
+ --checkbox-opacity: var(--opacity-100);
876
+ }
877
+ .m3-checkbox.checkbox-state\:focused input[type="checkbox"]::before {
878
+ --checkbox-outline-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-0));
879
+ --checkbox-main-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-100));
880
+ --checkbox-opacity: var(--opacity-100);
881
+ }
882
+ .m3-checkbox.checkbox-state\:pressed input[type="checkbox"]::before {
883
+ --checkbox-outline-color: color-mix(in srgb, var(--color-main-2), var(--checkbox-transparent-100));
884
+ --checkbox-main-color: var(--background-gradient);
885
+ --checkbox-opacity: var(--opacity-90);
886
+ }
887
+ /* =========================================
888
+ M3 Radio Button Variables
889
+ Google Material Design 3 스타일 변수 정의
890
+ ========================================= */
891
+ .m3-radio {
892
+ /* 크기 및 간격 */
893
+ --radio-size: 20px; /* 라디오 버튼 크기 */
894
+ --radio-touch-size: 48px; /* 터치 영역 크기 (접근성) */
895
+ --radio-stroke-width: 2px; /* 테두리 두께 */
896
+ --radio-inner-stroke-width: 5px; /* 내부 점 크기 제어용 테두리 */
897
+ --radio-inner-dot-size: 10px; /* 내부 점 크기 (참조용) */
898
+ --radio-spacing-label: 15px; /* 라디오와 라벨 사이 간격 */
899
+ --radio-label-size: 15px; /* 라벨 폰트 크기 */
900
+
901
+ /* 버튼속성 */
902
+ --radio-display: inline-flex;
903
+ --radio-align-items: center;
904
+ --radio-cursor: pointer;
905
+ --radio-user-select: none;
906
+
907
+ /* 색상 */
908
+ --radio-select-primary: var(--color-main-2); /* 선택 컬러 */
909
+ --radio-unselect-primary: var(--color-base-9); /* 미선택 컬러 */
910
+ --radio-focus-ring: 3px;
911
+
912
+ /* 버튼스타일 before,after */
913
+ --radio-transform: translate(-50%, -50%);
914
+ --radio-pointer: none;
915
+ --radio-box-sizing: border-box;
916
+ --radio-transition: all 180ms ease;
917
+ --radio-border-color: var(--radio-unselect-primary);
918
+ --radio-border-color-checked: var(--radio-select-primary);
919
+ --radio-background-color: transparent;
920
+ /* 액션 스타일 hover, press, focus */
921
+ --radio-box-shadow: none;
922
+ --radio-background-color: transparent;
923
+ --radio-outline: none;
924
+ --radio-outline-offset: 0;
925
+ --radio-outline-offset-focus: 5px;
926
+
927
+ /* 투명도 (Opacity) */
928
+ --alpha-1: 8%;
929
+ --alpha-2: 10%;
930
+ --alpha-3: 62%;
931
+
932
+ /* 투명도 (Color Mix용) */
933
+ --transparent-1: 10%;
934
+ --transparent-2: 90%;
935
+ --transparent-3: 92%;
936
+ --transparent-disabled: 62%;
937
+
938
+
939
+ }
940
+ /* 다크 모드 오버라이드 */
941
+ @media (prefers-color-scheme: dark) {
942
+ .m3-radio {
943
+ --radio-select-primary: var(--color-main-1);
944
+ }
945
+ }
946
+ /* =========================================
947
+ Container & Layout
948
+ ========================================= */
949
+ .m3-radio {
950
+ display: var(--radio-display);
951
+ align-items: var(--radio-align-items);
952
+ cursor: var(--radio-cursor);
953
+ user-select: var(--radio-user-select);
954
+ gap: var(--radio-spacing-label);
955
+ }
956
+ /* =========================================
957
+ Input Reset & Touch Area
958
+ 기본 라디오 버튼 숨김 및 커스텀 스타일 공간 확보
959
+ ========================================= */
960
+ .m3-radio input[type="radio"] {
961
+ appearance: none; /* 기본 브라우저 스타일 제거 */
962
+ width: var(--radio-touch-size); /* 터치 영역 확보 */
963
+ height: var(--radio-touch-size);
964
+ margin: var(--scale-0);
965
+ border: none;
966
+ position: relative;
967
+ background-color: var(--radio-background-color);
968
+ cursor: var(--radio-cursor);
969
+ }
970
+ /* =========================================
971
+ Pseudo-elements Setup
972
+ ::before -> 외부 링
973
+ ::after -> 내부 점
974
+ ========================================= */
975
+ .m3-radio input[type="radio"]::before,
976
+ .m3-radio input[type="radio"]::after {
977
+ content: "";
978
+ position: absolute;
979
+ left: 50%;
980
+ top: 50%;
981
+
982
+ transform: var(--radio-transform); /* 중앙 정렬 */
983
+ pointer-events: var(--radio-pointer);
984
+ box-sizing: var(--radio-box-sizing);
985
+ transition: var(--radio-transition);
986
+ }
987
+ /* 외부 링 (Unchecked State) */
988
+ .m3-radio input[type="radio"]::before {
989
+ width: var(--radio-size);
990
+ height: var(--radio-size);
991
+ border-radius: var(--radius-8); /* 원형 */
992
+ border: var(--radio-stroke-width) solid var(--radio-unselect-primary);
993
+ box-shadow: var(--radio-box-shadow);
994
+ background-color: var(--radio-background-color);
995
+ outline: var(--radio-outline);
996
+ outline-offset: var(--radio-outline-offset);
997
+ }
998
+ /* 내부 점 (Hidden by default) */
999
+ .m3-radio input[type="radio"]::after {
1000
+ width: 0;
1001
+ height: 0;
1002
+ border-radius: var(--radius-8);
1003
+ border: var(--radio-inner-stroke-width) solid var(--radio-select-primary);
1004
+ opacity: var(--opacity-0);
1005
+ }
1006
+ /* =========================================
1007
+ States: Checked
1008
+ ========================================= */
1009
+ /* 체크 시 외부 링 색상 변경 */
1010
+ .m3-radio input[type="radio"]:checked::before {
1011
+ border-color: var(--radio-border-color-checked);
1012
+ }
1013
+ /* 체크 시 내부 점 표시 */
1014
+ .m3-radio input[type="radio"]:checked::after {
1015
+ opacity: var(--opacity-100);
1016
+ }
1017
+ /* =========================================
1018
+ States: Hover
1019
+ Hover 시 배경에 희미한 원(Ripple) 표시
1020
+ ========================================= */
1021
+ .m3-radio input[type="radio"]:hover::before {
1022
+ /* box-shadow로 Ripple 효과 구현 */
1023
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-3));
1024
+ --radio-background-color: color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-2));
1025
+ }
1026
+ .m3-radio input[type="radio"]:checked:hover::before {
1027
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-3));
1028
+ --radio-background-color: color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-2));
1029
+ }
1030
+ /* =========================================
1031
+ States: Active (Press)
1032
+ 눌렀을 때 진한 Ripple 표시
1033
+ ========================================= */
1034
+ .m3-radio input[type="radio"]:active::before {
1035
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-2));
1036
+ --radio-background-color: color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-2));
1037
+ }
1038
+ .m3-radio input[type="radio"]:checked:active::before {
1039
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-2));
1040
+ --radio-background-color: color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-2));
1041
+ }
1042
+ /* =========================================
1043
+ States: Focus
1044
+ 키보드 접근성 등을 위한 포커스 링
1045
+ ========================================= */
1046
+ .m3-radio input[type="radio"]:focus::before {
1047
+ --radio-outline: 1px solid color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-1));
1048
+ --radio-outline-offset: var(--radio-outline-offset-focus);
1049
+ }
1050
+ .m3-radio input[type="radio"]:checked:focus::before {
1051
+ --radio-outline: 1px solid color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-1));
1052
+ --radio-outline-offset: var(--radio-outline-offset-focus);
1053
+ }
1054
+ /* =========================================
1055
+ States: Disabled
1056
+ ========================================= */
1057
+ .m3-radio input[type="radio"]:disabled {
1058
+ cursor: not-allowed;
1059
+ box-shadow: none;
1060
+ }
1061
+ .m3-radio input[type="radio"]:checked:disabled::before,
1062
+ .m3-radio input[type="radio"]:checked:disabled::after,
1063
+ .m3-radio input[type="radio"]:disabled::before,
1064
+ .m3-radio input[type="radio"]:disabled::after {
1065
+ --radio-border-color: color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-disabled));
1066
+ background-color: transparent;
1067
+ box-shadow: none;
1068
+ }
1069
+ /* =========================================
1070
+ Label
1071
+ ========================================= */
1072
+ .m3-radio .m3-radio-label {
1073
+ font-size: var(--radio-label-size);
1074
+ color: var(--radio-unselect-primary);
1075
+ }
1076
+ /* =========================================
1077
+ Helpers: Force States
1078
+ 테스트 또는 강제 상태 표현용 클래스
1079
+ (.radio:hover, .radio:press, .radio:focus)
1080
+ ========================================= */
1081
+ /* Hover Force */
1082
+ .radio\:hover input[type="radio"]::before {
1083
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-3));
1084
+ --radio-background-color: color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-2));
1085
+ }
1086
+ .radio\:hover input[type="radio"]:checked::before {
1087
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-3));
1088
+ --radio-background-color: color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-2));
1089
+ }
1090
+ /* Press Force */
1091
+ .radio\:press input[type="radio"]::before {
1092
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-2));
1093
+ --radio-background-color: color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-2));
1094
+ }
1095
+ .radio\:press input[type="radio"]:checked::before {
1096
+ --radio-box-shadow: 0 0 0 10px color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-2));
1097
+ --radio-background-color: color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-2));
1098
+ }
1099
+ /* Focus Force */
1100
+ .radio\:focus input[type="radio"]::before {
1101
+ --radio-outline: 1px solid color-mix(in srgb, var(--radio-unselect-primary), transparent var(--transparent-1));
1102
+ --radio-outline-offset: var(--radio-outline-offset-focus);
1103
+ }
1104
+ .radio\:focus input[type="radio"]:checked::before {
1105
+ --radio-outline: 1px solid color-mix(in srgb, var(--radio-select-primary), transparent var(--transparent-1));
1106
+ --radio-outline-offset: var(--radio-outline-offset-focus);
1107
+ }
1108
+ .m3-card {
1109
+ /* 추가 변수 선언 */
1110
+ --overflow-hidden: hidden;
1111
+ --cursor-pointer: pointer;
1112
+ --cursor-grab: grab;
1113
+ --cursor-not-allowed: not-allowed;
1114
+
1115
+
1116
+ /* ========== 카드의 변수 선언(기본값) ========== */
1117
+ /* boxing */
1118
+ --card-background: var(--color-base-1);
1119
+ --card-width: auto;
1120
+ --card-height: auto;
1121
+ --card-padding: var(--space-10);
1122
+ --card-border: none;
1123
+ /* --card-border: var(--border-width-2) solid var(--color-base-2); */
1124
+ --card-border-radius: var(--radius-xl);
1125
+ --card-box-shadow: 0 var(--space-1) var(--space-3) rgba(0, 0, 0, var(--opacity-40)),
1126
+ 0 var(--space-1) var(--space-2) rgba(0, 0, 0, var(--opacity-50));
1127
+ --card-opacity: var(--opacity-100);
1128
+ --card-outline: none;
1129
+ --card-outline-offset: 0;
1130
+ --card-transform: none;
1131
+
1132
+ /* 상태별 변수 */
1133
+ --card-focused-outline-color: var(--color-base-8);
1134
+
1135
+ /* overlay */
1136
+ --card-overflow: var(--overflow-hidden);
1137
+
1138
+ /* effect */
1139
+ --card-cursor: var(--cursor-pointer);
1140
+ --card-transition: box-shadow var(--duration-5) var(--ease-out),
1141
+ transform var(--duration-5) var(--ease-out),
1142
+ opacity var(--duration-5) var(--ease-out);
1143
+
1144
+ /* ========== 카드 내부 컨텐츠의 변수 선언(기본값) ========== */
1145
+ /* boxing */
1146
+ --card-content-padding: var(--space-10);
1147
+
1148
+ /* ========== 카드 내부 헤드라인의 변수 선언(기본값) ========== */
1149
+ /* boxing */
1150
+ --card-headline-margin-bottom: var(--space-3);
1151
+
1152
+ /* font */
1153
+ --card-headline-font-size: var(--size-15);
1154
+ --card-headline-font-weight: var(--font-weight-semibold);
1155
+ --card-headline-color: var(--color-base-10);
1156
+ --card-headline-line-height: var(--size-19);
1157
+ --card-headline-letter-spacing: 0;
1158
+
1159
+ /* ========== 카드 내부 서브헤드의 변수 선언(기본값) ========== */
1160
+ /* boxing */
1161
+ --card-subhead-margin-bottom: var(--space-3);
1162
+
1163
+ /* font */
1164
+ --card-subhead-font-size: var(--size-10);
1165
+ --card-subhead-font-weight: var(--font-weight-normal);
1166
+ --card-subhead-color: var(--color-base-8);
1167
+ --card-subhead-line-height: var(--size-13);
1168
+ --card-subhead-letter-spacing: 0;
1169
+
1170
+ /* font */
1171
+ --card-supporting-text-font-size: var(--size-6);
1172
+ --card-supporting-text-font-weight: var(--font-weight-normal);
1173
+ --card-supporting-text-color: var(--color-base-10);
1174
+ --card-supporting-text-line-height: var(--size-9);
1175
+ --card-supporting-text-margin-bottom: var(--space-2);
1176
+ --card-supporting-text-letter-spacing: 0;
1177
+ }
1178
+ /* ====== 다크 모드 ====== */
1179
+ @media (prefers-color-scheme: dark) {
1180
+ .m3-card {
1181
+ /* 다크모드에서 변경되는 변수들만 재정의 */
1182
+ --card-background: var(--color-base-2);
1183
+ --card-headline-color: var(--color-base-10);
1184
+ --card-subhead-color: var(--color-base-8);
1185
+ --card-supporting-text-color: var(--color-base-9);
1186
+ }
1187
+
1188
+ .m3-card.card-state\:focused {
1189
+ --card-focused-outline-color: var(--color-accent-2);
1190
+ }
1191
+ }
1192
+ /* ====== LIGHT MODE (Default) ====== */
1193
+ /* 카드 컨테이너 */
1194
+ .m3-card {
1195
+ /* boxing */
1196
+ background: var(--card-background);
1197
+ width: var(--card-width);
1198
+ height: var(--card-height);
1199
+ padding: var(--card-padding);
1200
+ border: var(--card-border);
1201
+ border-radius: var(--card-border-radius);
1202
+ box-shadow: var(--card-box-shadow);
1203
+ opacity: var(--card-opacity);
1204
+ outline: var(--card-outline);
1205
+ outline-offset: var(--card-outline-offset);
1206
+ transform: var(--card-transform);
1207
+ /* layout */
1208
+ overflow: var(--card-overflow);
1209
+
1210
+ /* effect */
1211
+ cursor: var(--card-cursor);
1212
+ transition: var(--card-transition);
1213
+ }
1214
+ /* 카드 상태 */
1215
+ .m3-card.card-state\:enabled {
1216
+ --card-opacity: var(--opacity-100);
1217
+ --card-box-shadow: 0px solid black;
1218
+ }
1219
+ .m3-card.card-state\:disabled,
1220
+ .m3-card.card-state\:disabled button {
1221
+ --card-opacity: var(--opacity-60);
1222
+ --card-cursor: var(--cursor-not-allowed);
1223
+ }
1224
+ .m3-card.card-state\:hovered {
1225
+ --card-box-shadow: 0 var(--space-4) var(--space-4) rgba(0, 0, 0, 0.16),
1226
+ 0 var(--space-2) var(--space-4) rgba(0, 0, 0, 0.23);
1227
+ --card-opacity: var(--opacity-90);
1228
+ }
1229
+ .m3-card.card-state\:focused {
1230
+ --card-box-shadow: 0 var(--space-4) var(--space-4) rgba(0, 0, 0, 0.16),
1231
+ 0 var(--space-2) var(--space-4) rgba(0, 0, 0, 0.23);
1232
+ --card-outline: 3px solid var(--card-focused-outline-color);
1233
+ --card-outline-offset: var(--space-2);
1234
+ --card-opacity: var(--opacity-90);
1235
+ }
1236
+ .m3-card.card-state\:dragged {
1237
+ --card-box-shadow: 0 var(--space-4) var(--space-10) rgba(0, 0, 0, var(--opacity-25)),
1238
+ 0 var(--space-6) var(--space-6) rgba(0, 0, 0, var(--opacity-30));
1239
+ --card-transform: scale(1.02);
1240
+ --card-opacity: var(--opacity-80);
1241
+ --card-cursor: var(--cursor-grap);
1242
+ }
1243
+ /* 카드 컨텐츠 */
1244
+ .m3-card .content {
1245
+ padding: var(--card-content-padding);
1246
+
1247
+ }
1248
+ .m3-card .headline {
1249
+ font-size: var(--card-headline-font-size);
1250
+ font-weight: var(--card-headline-font-semibold);
1251
+ color: var(--card-headline-color);
1252
+ line-height: var(--card-headline-line-height);
1253
+ margin-bottom: var(--card-headline-margin-bottom);
1254
+ letter-spacing: var(--card-headline-letter-spacing);
1255
+ }
1256
+ .m3-card .subhead {
1257
+ font-size: var(--card-subhead-font-size);
1258
+ font-weight: var(--card-subhead-font-weight);
1259
+ color: var(--card-subhead-color);
1260
+ line-height: var(--card-subhead-line-height);
1261
+ margin-bottom: var(--card-subhead-margin-bottom);
1262
+ letter-spacing: var(--card-subhead-letter-spacing);
1263
+ }
1264
+ .m3-card .supporting-text {
1265
+ font-size: var(--card-supporting-text-font-size);
1266
+ font-weight: var(--card-supporting-text-font-weight);
1267
+ color: var(--card-supporting-text-color);
1268
+ line-height: var(--card-supporting-text-line-height);
1269
+ margin-bottom: var(--card-supporting-text-margin-bottom);
1270
+ letter-spacing: var(--card-supporting-text-letter-spacing);
1271
+ }
1272
+ .m3-dialog {
1273
+ /* =====공통 상수 variables.css에서 정의 어떤값 사용했는지 주석으로 표시 ===== */
1274
+ /* color */
1275
+ /* --color-base-10: #000000;
1276
+ --color-base-9: #191919;
1277
+ --color-base-8: #585858;
1278
+ --color-sub-2: #2570b6;
1279
+ --color-sub-1: #2983d7;
1280
+ --color-base-4: #b3b3b3;
1281
+ --color-base-2: #d7d7d7;
1282
+ --color-base-3: #e5e7eb; */
1283
+
1284
+ /* font size */
1285
+ /* --space-15: 24px;
1286
+ --space-8: 14px;
1287
+ */
1288
+
1289
+ /* radius */
1290
+ /* --space-17: 28px; */
1291
+
1292
+ /* opacity */
1293
+ /* --opacity-10: 0.1; */
1294
+
1295
+ /* padding */
1296
+ /* --space-15: 24px;
1297
+ --space-14: 22px;
1298
+ --space-13: 20px;
1299
+ --space-12: 18px;
1300
+ --space-10: 16px;
1301
+ --space-8: 14px;
1302
+ --space-6: 12px;
1303
+ --space-5: 10px;
1304
+ --space-4: 8px;
1305
+ --space-3: 4px;
1306
+ --space-2: 2px;
1307
+ --space-1: 1px; */
1308
+
1309
+
1310
+ /* margin */
1311
+ /* --space-15: 24px;
1312
+ --space-14: 22px;
1313
+ --space-13: 20px;
1314
+ --space-12: 18px;
1315
+ --space-10: 16px;
1316
+ --space-8: 14px;
1317
+ --space-6: 12px;
1318
+ --space-5: 10px;
1319
+ --space-4: 8px;
1320
+ --space-3: 4px;
1321
+ --space-2: 2px;
1322
+ --space-1: 1px; */
1323
+
1324
+ /* gap */
1325
+ /* --space-4: 8px;
1326
+ --space-3: 4px;
1327
+ --space-2: 2px;
1328
+ --space-1: 1px; */
1329
+
1330
+ /* line height */
1331
+ /* --space-13: 20px;
1332
+ --space-10: 16px;
1333
+ --space-6: 12px;
1334
+ --space-4: 8px;
1335
+ --space-3: 4px; */
1336
+
1337
+ /* width, height */
1338
+ /* 문서에는 최소, 최대 넓이로 나와있어서 수정하였음 */
1339
+ --dialog-spec-min-width: 280px;
1340
+ --dialog-spec-max-width: 560px;
1341
+
1342
+ /*======================= 변수 =======================*/
1343
+ /* 여기서만 수정한다 */
1344
+ --dialog-bg-color: var(--color-base-3);
1345
+ --dialog-radius: var(--space-17);
1346
+ --dialog-padding: var(--space-15);
1347
+ --dialog-min-width: var(--dialog-spec-min-width);
1348
+ --dialog-max-width: var(--dialog-spec-max-width);
1349
+
1350
+ --dialog-color: var(--color-base-8);
1351
+
1352
+ --dialog-headline-font-color: var(--color-base-10);
1353
+ --dialog-headline-font-size: var(--space-15);
1354
+ --dialog-headline-font-weight: var(--font-weight-4);
1355
+ --dialog-headline-margin-bottom: var(--space-14);
1356
+
1357
+ --dialog-content-font-color: var(--color-base-8);
1358
+ --dialog-content-font-size: var(--space-8);
1359
+ --dialog-content-margin-bottom: var(--space-15);
1360
+ --dialog-content-line-height: var(--space-13);
1361
+
1362
+ --dialog-actions-gap: var(--space-4);
1363
+
1364
+ --dialog-btn-color: var(--color-sub-2);
1365
+ --dialog-btn-padding: var(--space-12) var(--space-10);
1366
+
1367
+ /* Text Button specific */
1368
+ /* --dialog-opacity-1: 0.08 -> 8% */
1369
+ --dialog-hovered-bg: color-mix(in srgb, var(--dialog-btn-color) 8%, transparent);
1370
+ --dialog-focused-bg: color-mix(in srgb, var(--dialog-btn-color) 10%, transparent);
1371
+ --dialog-pressed-bg: color-mix(in srgb, var(--dialog-btn-color) 10%, transparent);
1372
+ }
1373
+ /* ====다크모드 테마==== */
1374
+ @media (prefers-color-scheme: dark) {
1375
+ .m3-dialog {
1376
+ --dialog-bg-color: var(--color-base-3);
1377
+ --dialog-headline-font-color: var(--color-base-10);
1378
+ --dialog-content-font-color: var(--color-base-8);
1379
+ --dialog-btn-color: var(--color-sub-2);
1380
+ }
1381
+ }
1382
+ /* ====기본 테마==== */
1383
+ .m3-dialog {
1384
+ position: fixed;
1385
+ /* top, right, bottom, left 값을 한 번에 지정하는 속성 */
1386
+ inset: 0;
1387
+ margin: auto;
1388
+ width: fit-content;
1389
+ height: fit-content;
1390
+
1391
+ /* backdrop */
1392
+ box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.4);
1393
+
1394
+ /* moved from .modal-container */
1395
+ background: var(--dialog-bg-color);
1396
+ padding: var(--dialog-padding);
1397
+ border-radius: var(--dialog-radius);
1398
+ min-width: var(--dialog-min-width);
1399
+ max-width: var(--dialog-max-width);
1400
+ box-sizing: border-box;
1401
+
1402
+ color: var(--dialog-color);
1403
+ font-family: 'Roboto', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
1404
+
1405
+ flex-direction: column;
1406
+
1407
+ .header,
1408
+ > :first-child {
1409
+ margin: 0 0 var(--dialog-headline-margin-bottom) 0;
1410
+ color: var(--dialog-headline-font-color);
1411
+ font-size: var(--dialog-headline-font-size);
1412
+ font-weight: var(--dialog-headline-font-weight);
1413
+ }
1414
+
1415
+ .content,
1416
+ > :nth-child(2) {
1417
+ margin: 0 0 var(--dialog-content-margin-bottom) 0;
1418
+ color: var(--dialog-content-font-color);
1419
+ font-size: var(--dialog-content-font-size);
1420
+ line-height: var(--dialog-content-line-height);
1421
+ }
1422
+
1423
+ .actions,
1424
+ > :nth-child(3) {
1425
+ display: flex;
1426
+ justify-content: flex-end;
1427
+ gap: var(--dialog-actions-gap);
1428
+ }
1429
+ }
1430
+ /* === 1. n-btn & STRUCTURE === */