@bakung-ui/minimax.css
Version:
A reset CSS library with variables
663 lines (535 loc) • 13.2 kB
CSS
@charset "UTF-8";
@import '_variables.css';
@layer base {
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
*:focus-visible {
outline: var(--focus-outline);
}
*:where([type="radio"], [type="range"]):focus-visible {
outline: none;
}
html {
font: var(--font);
-webkit-text-size-adjust: 100%;
/* Prevent html scrollable */
&:has(dialog[open], dialog[popover]:popover-open) {
overflow: hidden;
}
}
body {
accent-color: var(--accent-color);
color: var(--font-color);
background: var(--bg-color);
letter-spacing: var(--letter-spacing);
line-height: var(--line-height);
}
main {
display: block;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font: var(--h--font-weight) 4rem / var(--h--line-height) var(--h--font-family);
letter-spacing: var(--h--letter-spacing);
color: var(--h--color);
margin: 2.5rem 0 1.25rem;
}
h1 {
font-size: clamp(2.799rem, calc(2.799rem + 0.125vw), 3.799rem);
}
h2 {
font-size: clamp(2.332rem, calc(2.332rem + 0.125vw), 3.332rem);
}
h3 {
font-size: clamp(1.944rem, calc(1.944rem + 0.125vw), 2.944rem);
}
h4 {
font-size: clamp(1.62rem, calc(1.62rem + 0.125vw), 2.62rem);
}
h5 {
font-size: clamp(1.35rem, calc(1.35rem + 0.125vw), 2.35rem);
}
h6 {
font-size: clamp(1.125rem, calc(1.125rem + 0.125vw), 2.125rem);
}
blockquote {
--data-quoter-marker: attr(data-quoter-marker, "\2014 \00A0");
border-width: var(--blockquote--border-width);
border-style: var(--blockquote--border-style);
border-color: var(--blockquote--border-color);
padding: 1rem;
margin: 0 0 0 1rem;
:where(&) footer {
color: var(--blockquote_--footer--color);
margin: var(--blockquote_--footer--margin);
}
:where(&) footer:before {
content: var(--data-quoter-marker);
}
}
ul,
ol {
padding: 0 0 0 1.25em;
}
fieldset {
border: var(--boundary--border);
padding: 0.5rem;
:where(&) > label {
margin: 0 1rem 0 0;
}
}
legend {
color: inherit;
display: table;
padding: 0; /* 3 */
white-space: normal;
}
details {
display: block;
}
summary {
cursor: pointer;
display: list-item;
}
dt {
font-weight: bold;
}
pre {
color: var(--pre--color);
background: var(--pre--background);
border: var(--pre--border);
padding: 1rem;
overflow: auto;
}
hr {
border: var(--boundary--border);
border-width: 0 0 1px;
box-sizing: content-box;
color: inherit;
overflow: visible;
margin: 0.5rem 0;
}
a {
display: inline-block;
&:focus,
&:hover {
filter: brightness(105%);
}
&:visited {
color: var(--href--visited-color);
}
}
[href] {
color: var(--href--color);
}
abbr[title] {
border-bottom: none;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
}
audio,
video {
display: inline-block;
}
audio:not([controls]) {
display: none;
}
b,
strong {
font-weight: bold;
}
code,
kbd,
samp {
font: normal var(--cks--font-weight) var(--cks--font-size) var(--cks--font-family);
font-optical-sizing: auto;
}
code {
color: var(--code--color);
background: var(--code--background);
}
kbd {
color: var(--kbd--color);
background: var(--kbd--background);
border-radius: var(--kbd--border-radius);
&:has(kbd) {
background-color: unset;
border: var(--kbd_-kbd--border);
border-width: var(--kbd_-kbd--border-width);
padding: var(--kbd_-kbd--padding);
}
kbd {
font-weight: var(--kbd_-kbd--font-weight);
color: var(--kbd_-kbd--color);
background-color: unset;
}
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
img {
border: none;
max-height: 90vh;
max-width: 90vw;
display: inline-block;
}
figure {
:where(&) img {
margin: auto auto 0.5rem;
line-height: 1;
}
}
figcaption {
font-size: 0.875em;
}
button,
input,
optgroup,
option,
select,
textarea {
color: var(--controls--font-color);
font: var(--font-weight) var(--font-size)/var(--line-height) var(--font-family);
}
button,
input,
optgroup,
select,
textarea {
border: var(--controls--border);
margin: 0;
min-height: var(--controls--min-height);
padding: var(--controls--padding);
}
button,
input,
select {
text-transform: none;
}
button,
[type="button"],
[type="reset"],
[type="submit"],
.btn {
cursor: pointer;
font: var(--btn--font);
line-height: var(--btn--line-height);
color: var(--btn--font-color,);
background-color: var(--btn--bg-color, revert);
border: 0 var(--btn--border-style) var(--btn--border-color, initial);
border-width: var(--btn--borders-width, 1px);
border-radius: var(--btn--borders-radius);
box-shadow: var(--btn--shadow,);
min-height: var(--controls--min-height);
position: relative;
padding: var(--btn--paddings);
text-align: center;
text-decoration: none;
vertical-align: middle;
overflow: visible;
-webkit-appearance: button;
-moz-appearance: button;
appearance: button;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
:where(&:active):not(:disabled) {
transform: translateY(1px);
box-shadow: none;
}
&:disabled {
color: revert;
}
&:focus-visible {
box-shadow: none;
}
}
input {
overflow: visible;
}
[type="color"] {
cursor: pointer;
background: inherit;
padding: 0.25em;
min-height: 2rem;
}
[type="checkbox"],
[type="radio"] {
min-height: initial;
padding: 0;
}
[type="date"],
[type="datetime-local"],
[type="month"],
[type="week"],
[type="time"] {
padding: 0.125em 0.25em;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield;
appearance: textfield;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
[type="file"] {
padding: 0 0.125em 0 0;
}
::file-selector-button {
-webkit-appearance: button;
font: inherit;
padding: 0.125em 0.25em;
margin: -1px 0.125em -1px -1px;
}
progress {
display: inline-block;
vertical-align: baseline;
}
select {
min-width: 1.7em;
}
select optgroup {
border: none;
}
optgroup {
color: var(--font-color-alt-1);
padding: 0.125em;
}
option {
margin: 0 0 0 .5em;
padding: 0.25em 0.25em 0.125em;
}
textarea {
overflow: auto;
vertical-align: top;
}
svg:not(:root) {
overflow: hidden;
}
table {
text-indent: 0;
border-color: inherit;
}
th {
color: var(--font-color-alt-1);
}
td {
padding: 0.5em;
}
/**
* Dialog show once per-event (call), then remove the elemen from DOM.
* Popover, just hide the element when not in use.
*/
dialog,
[popover] {
/* Start fade in, end fade out. */
pointer-events: none;
color: inherit;
background: var(--bg-color);
border: none;
opacity: 0;
box-shadow: var(--shadow-float);
position: fixed;
inset: 50% auto auto 50%;
display: none;
padding: 1rem;
text-align: initial;
overflow: visible;
z-index: 1000;
transform: translate(-50%, -50%) scale(0.85);
transition:
opacity 350ms ease-in-out,
transform 350ms ease-in-out,
overlay 350ms allow-discrete,
display 350ms allow-discrete;
}
dialog {
min-height: 5rem;
height: var(--dialog--height, auto);
max-height: calc(100vh - 4rem);
min-width: clamp(280px, 100vw - 4rem, 400px);
width: var(--dialog--width, auto);
max-width: clamp(280px, 100vw - 4rem, 1160px);
}
[popover] {
height: var(--popover--height, auto);
max-height: calc(100vh - 2rem);
width: var(--popover--width, auto);
max-width: clamp(4rem, 100vw - 2rem, 1200px);
}
dialog[open],
[popover]:popover-open {
/* End fade in; start fade out. */
pointer-events: initial;
opacity: 1;
display: block;
transform: translate(-50%, -50%) scale(1);
/* Start values for fade in. */
@starting-style {
opacity: 0;
transform: translate(-50%, -50%) scale(0.85);
}
}
dialog::backdrop,
[popover]::backdrop {
background: var(--backdrop--bg-color);
backdrop-filter: blur(0.5rem);
}
template {
display: none;
}
input,
textarea,
select,
[type="color"] {
background: var(--input--bg-color);
}
[type="checkbox"],
[type="file"],
[type="radio"],
[type="range"] {
cursor: pointer;
}
[type="range"]:focus-visible::-webkit-slider-thumb {
border-radius: 50%;
outline: var(--focus-outline);
height: 0.8em;
width: 0.8em;
}
[type="radio"]:focus-visible {
box-shadow: var(--focus--box-shadow);
}
[disabled] {
cursor: not-allowed;
filter: contrast(.5);
}
[hidden] {
display: none;
}
:where(
dl,
ol,
ul,
fieldset,
p,
details,
pre,
form,
address,
blockquote,
figure,
table
):has(
+ :is(
dl,
ol,
ul,
fieldset,
p,
details,
pre,
form,
address,
blockquote,
figure,
table,
nav
)
) {
margin-bottom: var(--elements-block-level-space);
}
/*Fix outline for :focus-visible*/
input,
select,
textarea,
audio,
video,
details,
button,
[type="button"],
[type="reset"],
[type="submit"],
.btn {
margin: 0.25rem;
}
@-moz-document url-prefix() {
button,
[type="button"],
[type="reset"],
[type="submit"],
.btn {
padding: var(--moz-btn-paddings);
}
textarea,
[type="email"],
[type="number"],
[type="password"],
[type="search"],
[type="tel"],
[type="text"],
[type="url"],
[type="date"],
[type="datetime"],
[type="datetime-local"],
[type="month"],
[type="week"],
[type="time"] {
padding: var(--moz-input--paddings);
}
select {
min-width: 1.5em;
padding: var(--moz-input--select-paddings);
&:focus {
outline: var(--focus-outline);
}
}
input[type=range] {
background: transparent;
border: none;
&:active {
filter: brightness(120%);
}
&::-moz-range-thumb {
background: var(--accent-color);
border: none;
height: 1rem;
width: 1rem;
}
&:focus-visible::-moz-range-thumb {
outline: var(--focus-outline);
}
&::-moz-range-track {
cursor: pointer;
background: var(--accent-color);
border-radius: .25rem;
height: .5rem;
}
}
}
}