Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
698898305This file is pinned to the selected release. Download the original to open it in your design tool.
body {
overflow: hidden;
}
.face-editor-shell {
display: grid;
grid-template-rows: var(--header-height) minmax(0, 1fr);
height: 100dvh;
overflow: hidden;
}
.face-header-actions {
display: flex;
align-items: center;
gap: 6px;
margin-left: auto;
}
.face-header-actions button {
min-height: 36px;
padding: 7px 10px;
font-size: 0.78rem;
}
.face-header-actions .icon-button {
width: 36px;
min-width: 36px;
padding: 0;
}
.face-editor-layout {
display: grid;
grid-template-columns: minmax(460px, 1fr) minmax(330px, 420px);
min-height: 0;
overflow: hidden;
}
.face-preview-pane {
display: grid;
grid-template-rows: auto minmax(280px, 1fr) auto auto;
min-width: 0;
min-height: 0;
gap: 14px;
padding: 22px;
overflow: auto;
background:
linear-gradient(rgb(255 255 255 / 2%) 1px, transparent 1px),
linear-gradient(90deg, rgb(255 255 255 / 2%) 1px, transparent 1px), #101316;
background-size: 24px 24px;
}
.preview-heading {
display: flex;
align-items: end;
justify-content: space-between;
gap: 16px;
}
.preview-heading h1 {
margin: 0;
font-size: 1.15rem;
}
.preview-heading > p,
.eyebrow {
margin: 0;
color: var(--muted);
font-size: 0.74rem;
}
.eyebrow {
margin-bottom: 3px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.face-screen {
display: grid;
min-height: 0;
place-items: center;
}
.face-canvas {
width: min(100%, calc((100dvh - 230px) * 4 / 3), 720px);
max-height: calc(100dvh - 230px);
aspect-ratio: 4 / 3;
border: 10px solid #3b4146;
border-radius: 14px;
background: #111;
box-shadow:
0 24px 60px rgb(0 0 0 / 42%),
inset 0 0 0 1px rgb(255 255 255 / 8%);
touch-action: none;
user-select: none;
}
.screen-background {
fill: #090b0d;
}
.face-frame-background {
fill: var(--face-secondary, #202020);
}
.face-frame-outline {
fill: none;
stroke: rgb(255 255 255 / 24%);
stroke-dasharray: 4 4;
stroke-width: 1;
}
.shape-part {
cursor: grab;
outline: none;
}
.shape-part:active {
cursor: grabbing;
}
.shape-part:focus-visible > :first-child {
filter: drop-shadow(0 0 4px var(--accent));
stroke: var(--accent);
stroke-width: 2px;
}
.eye-iris,
.mouth {
fill: var(--face-primary, #fff);
}
.eye-lid {
fill: var(--face-secondary, #202020);
pointer-events: none;
}
.face-status {
min-height: 20px;
margin: 0;
color: var(--muted);
font-size: 0.78rem;
}
.face-status[data-state='error'] {
color: var(--danger);
}
.face-status[data-state='success'] {
color: var(--success);
}
.generated-face-code {
border: 1px solid var(--line);
border-radius: 7px;
background: #111416;
}
.generated-face-code summary {
padding: 9px 12px;
color: var(--muted);
cursor: pointer;
font-size: 0.76rem;
font-weight: 700;
}
.generated-face-code pre {
max-height: 220px;
margin: 0;
padding: 12px;
overflow: auto;
border-top: 1px solid var(--line);
color: #cbd2d8;
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 0.68rem;
line-height: 1.45;
white-space: pre-wrap;
}
.face-controls {
display: grid;
align-content: start;
gap: 12px;
min-height: 0;
padding: 18px;
overflow: auto;
border-left: 1px solid var(--line);
background: var(--surface);
}
.face-controls fieldset,
.face-controls details {
display: grid;
gap: 11px;
margin: 0;
padding: 13px;
border: 1px solid var(--line);
border-radius: 7px;
background: #15181b;
}
.face-controls legend,
.face-controls details > summary {
color: var(--text);
font-size: 0.8rem;
font-weight: 750;
}
.face-controls details > summary {
cursor: pointer;
}
.face-controls details[open] > summary {
margin-bottom: 2px;
}
.control-hint {
margin: 0;
color: var(--muted);
font-size: 0.69rem;
line-height: 1.45;
}
.face-controls label {
display: grid;
gap: 5px;
min-width: 0;
color: var(--muted);
font-size: 0.72rem;
}
.face-controls input,
.face-controls select {
min-height: 36px;
padding: 6px 8px;
background: var(--surface-raised);
}
.face-controls input[readonly] {
border-color: var(--line);
background: #1b1f22;
color: var(--muted);
cursor: default;
}
.face-controls input:disabled,
.face-controls select:disabled,
.shape-control-group[data-disabled='true'] {
opacity: 0.55;
}
.face-controls .toggle-control {
display: flex;
align-items: center;
gap: 7px;
}
.face-controls .toggle-control input {
width: 16px;
height: 16px;
min-height: 16px;
margin: 0;
padding: 0;
}
.control-grid,
.number-grid {
display: grid;
gap: 8px;
}
.control-grid {
grid-template-columns: 1fr 1fr;
}
.number-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.range-control {
display: grid;
grid-template-columns: minmax(0, 1fr) 46px;
align-items: center;
gap: 8px;
}
.range-control input {
padding: 0;
}
.range-control output {
color: var(--text);
font-variant-numeric: tabular-nums;
text-align: right;
}
@media (max-width: 900px) {
body {
overflow: auto;
}
.face-editor-shell {
height: auto;
min-height: 100dvh;
overflow: visible;
}
.face-editor-layout {
grid-template-columns: 1fr;
overflow: visible;
}
.face-preview-pane {
min-height: 590px;
}
.face-canvas {
width: min(100%, 640px);
max-height: none;
}
.face-controls {
overflow: visible;
border-top: 1px solid var(--line);
border-left: 0;
}
}
@media (max-width: 620px) {
.face-header-actions button:not(.icon-button) span {
display: none;
}
.brand-link > span {
display: none;
}
.face-preview-pane {
min-height: 500px;
padding: 16px;
}
.preview-heading {
align-items: start;
flex-direction: column;
gap: 5px;
}
.number-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}