@import "sass-zero/variables";
@import "sass-zero/mixins";
$font-family: $font-sans;
$radius-input: $rounded;
$radius-button: $rounded;
$color-bg--main: $white;
$color-bg--surface: $gray-100;
$color-primary: $gray-900;
$color-txt: $gray-900;
$color-focus-ring: rgba($gray-900, $opacity-50);
$image-bg-select-black: url('data:image/svg+xml,');
$image-checked-checkbox-white: url('data:image/svg+xml,');
$image-checked-radio-white: url('data:image/svg+xml,');
html {
background: $color-bg--main;
color: $color-txt;
font-family: $font-family;
font-size: 16px;
}
blockquote {
border-color: $color-primary;
border-left-width: $border-4;
padding: $size-3 $size-4;
}
.btn {
border-radius: $radius-button;
border-width: $border;
display: inline-block;
font-weight: $font-bold;
padding: $size-2 $size-4;
cursor: pointer;
&:focus {
outline: 2px dotted $color-primary;
outline-offset: 2px;
}
&:disabled {
pointer-events: none;
opacity: $opacity-50;
}
&--primary {
background-color: $color-primary;
border-color: $color-primary;
color: $color-bg--main;
}
&--secondary {
background-color: $color-bg--main;
border-color: $color-primary;
}
&--tertiary {
background-color: $transparent;
border-color: $transparent;
}
}
code {
background-color: $color-bg--surface;
border-radius: $rounded-xl;
font-size: $text-sm;
margin: $size-0 $size-1;
padding: $size-1 $size-2;
white-space: nowrap;
}
pre {
background-color: $color-bg--surface;
border-color: $color-primary;
border-left-width: $border-4;
overflow-y: hidden;
& > code {
border-radius: $rounded-none;
display: block;
padding: $size-2 $size-3;
white-space: pre;
}
}
hr {
margin: $size-6 $size-0;
}
.input {
appearance: none;
background-color: $transparent;
border-radius: $radius-input;
border-width: $border;
padding: $size-2 $size-3;
width: $size-full;
&--select {
background-image: $image-bg-select-black;
background-position: right $size-2 center;
background-repeat: no-repeat;
background-size: auto $size-5;
padding-right: $size-8;
}
&:focus {
box-shadow: ring($color: $color-focus-ring);
@include outline-none;
}
}
.checkbox {
border-radius: $rounded;
@include input-selection($color-primary);
&:checked {
background-image: $image-checked-checkbox-white;
@include checked;
}
&:focus {
box-shadow: ring($color: $color-focus-ring);
@include outline-none;
}
}
.radio {
border-radius: $rounded-full;
@include input-selection($color-primary);
&:checked {
background-image: $image-checked-radio-white;
@include checked;
}
&:focus {
box-shadow: ring($color: $color-focus-ring);
@include outline-none;
}
}
a {
font-weight: $font-bold;
}
ul, ol {
padding-left: $size-10;
}
ul {
list-style: disc outside;
}
ol {
list-style: decimal outside;
}
label, legend, dt {
margin-bottom: $size-1;
}
h1, h2, h3, h4, h5, h6, .hdg {
margin-bottom: $size-4;
}
fieldset, .input {
margin-bottom: $size-6;
}
blockquote, figure, p, pre, table, ul, ol, dl {
margin-bottom: $size-6;
}
table {
width: $size-full;
}
td, th {
border-bottom-width: $border;
padding: $size-3 $size-4;
text-align: left;
}
h1, h2, h3, h4, h5, h6, .hdg {
font-weight: $font-bold;
line-height: $leading-tight;
}
h1, .hdg--4xl {
font-size: $text-4xl;
}
h2, .hdg--3xl {
font-size: $text-3xl;
}
h3, .hdg--2xl {
font-size: $text-2xl;
}
h4, .hdg--xl {
font-size: $text-xl;
}
h5, .hdg--lg {
font-size: $text-lg;
}
h6, .hdg--base {
font-size: $text-base;
}