You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

240 lines
4.1 KiB
SCSS

*,
*::before,
*::after {
// Good practice
box-sizing: border-box;
// For body and headings as typography should be done by hand anyway
margin: 0;
// For controls
font-family: inherit;
appearance: none;
}
html,
body {
display: contents;
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 16px;
background: #f4f4f4;
color: #333;
}
// Headings
$base-font-size: 15px;
$heading-scale: 1.33;
@function pow($number, $exponent) {
$value: 1;
@if $exponent > 0 {
@for $i from 1 through $exponent {
$value: $value * $number;
}
}
@return $value;
}
@for $i from 1 through 5 {
h#{$i} {
font-family: 'Inter', sans-serif;
font-weight: 500;
$factor: pow($heading-scale, 5 - $i);
font-size: $base-font-size * $factor;
}
}
// Controls
button {
border: 1px solid #d0d0d0;
background: #fff;
font-size: 15px;
border-radius: 6px;
cursor: pointer;
&.flat {
border-color: transparent;
background-color: transparent;
&:hover {
background: #d0d0d0;
}
}
&.icon {
aspect-ratio: 1;
display: grid;
place-content: center;
}
display: flex;
align-items: center;
gap: 0.25rem;
height: 2rem;
.material-symbols-outlined {
font-size: 20px;
}
&.small {
height: 1.5rem;
.material-symbols-outlined {
font-size: 16px;
}
}
}
.compound-select {
display: flex;
flex-direction: row;
gap: 0.25rem;
button.selected {
background: #f0f0f0;
border-color: #888;
}
}
// Structure
main {
user-select: none;
width: 100vw;
height: 100vh;
display: grid;
grid-template-columns: 10rem 1fr;
grid-template-rows: auto 1fr;
grid-template-areas:
'toolbar toolbar'
'outline work-area';
.toolbar {
grid-area: toolbar;
background: #fff;
border-bottom: 1px solid #d0d0d0;
display: flex;
flex-direction: row;
align-items: center;
gap: 1rem;
padding: 0.5rem 1rem;
.logo {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 22px;
font-weight: 500;
padding-right: 0.5rem;
}
.group {
display: flex;
flex-direction: column;
gap: 0.25rem;
.label {
font-size: 13px;
color: #333;
font-weight: 300;
}
.content {
display: flex;
flex-direction: row;
gap: 0.25rem;
}
}
}
.outline {
grid-area: outline;
padding: 0.5rem;
display: flex;
flex-direction: column;
gap: 0.25rem;
background: #fff;
border-right: 1px solid #d0d0d0;
.layer {
padding: 0 0 0 0.25rem;
height: 1.5rem;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: space-between;
.name {
display: flex;
align-items: center;
gap: 0.25rem;
font-size: 15px;
.material-symbols-outlined {
font-size: 18px;
}
}
.buttons {
display: flex;
align-items: center;
flex-direction: row;
gap: 0.25rem;
}
&:not(:hover) {
.buttons {
display: none;
}
}
&:hover {
background: #f0f0f0;
}
}
}
.work-area {
grid-area: work-area;
position: relative;
canvas {
position: absolute;
width: 100%;
height: 100%;
@media (prefers-color-scheme: dark) {
filter: invert(100%);
}
}
}
}