← back to Designer Portfolio Pages
public/app.css
183 lines
/* Designer Mood Board — matching Shopify store typography */
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');
:root {
color-scheme: light;
--font-heading: 'Lora', serif;
--font-body: -apple-system, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
--color-bg: #fafaf8;
--color-surface: #fff;
--color-text: #1a1a1a;
--color-text-muted: #6b6b6b;
--color-border: #e5e2dc;
--color-border-light: #f0ede8;
--color-accent: #3D4246;
--color-accent-light: #f5f3ef;
--radius: 8px;
}
* { box-sizing: border-box; margin: 0; }
body {
font-family: var(--font-body);
background: var(--color-bg);
color: var(--color-text);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
.container { max-width: 1000px; margin: 0 auto; padding: 28px 24px; }
.header { margin-bottom: 20px; }
h1 {
font-family: var(--font-heading);
font-weight: 600;
font-size: 30px;
letter-spacing: -0.01em;
margin: 0 0 6px;
color: var(--color-text);
}
h2 {
font-family: var(--font-heading);
font-weight: 500;
font-size: 19px;
margin: 0 0 14px;
color: var(--color-text);
}
.card {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius);
padding: 22px;
margin: 18px 0;
}
.row { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.form { display: flex; flex-direction: column; gap: 14px; }
.label {
display: flex;
flex-direction: column;
gap: 5px;
font-size: 13px;
font-weight: 500;
color: var(--color-text-muted);
text-transform: uppercase;
letter-spacing: 0.04em;
flex: 1;
}
.input {
padding: 10px 12px;
border-radius: var(--radius);
border: 1px solid var(--color-border);
font-size: 14px;
font-family: var(--font-body);
color: var(--color-text);
transition: border-color 0.15s;
}
.input:focus { border-color: var(--color-accent); outline: none; }
.btn {
padding: 10px 18px;
border: 1px solid var(--color-border);
background: var(--color-surface);
border-radius: var(--radius);
cursor: pointer;
font-size: 13px;
font-weight: 500;
font-family: var(--font-body);
letter-spacing: 0.02em;
transition: background 0.15s, border-color 0.15s;
white-space: nowrap;
}
.btn:hover { background: var(--color-accent-light); border-color: #ccc; }
.btn.primary {
border-color: var(--color-accent);
background: var(--color-accent);
color: #fff;
}
.btn.primary:hover { background: #2c2f33; }
.btn.primary:disabled { background: #aaa; border-color: #aaa; cursor: not-allowed; }
.btn.add-mood {
background: #f0f5f0;
border-color: #c5d9c5;
color: #2e5a2e;
font-size: 12px;
padding: 6px 14px;
}
.btn.add-mood:hover { background: #e0ede0; }
.btn.remove-mood {
background: #faf0f0;
border-color: #dbb;
color: #8b3333;
font-size: 12px;
padding: 6px 14px;
}
.btn.remove-mood:hover { background: #f5e0e0; }
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
gap: 14px;
margin-top: 12px;
}
.pattern {
border: 1px solid var(--color-border-light);
border-radius: var(--radius);
padding: 8px;
background: var(--color-surface);
display: flex;
flex-direction: column;
gap: 8px;
transition: border-color 0.15s;
}
.pattern:hover { border-color: var(--color-border); }
.pattern.in-board { border-color: #b5ccb5; background: #fafdf9; }
.square {
width: 100%;
aspect-ratio: 1 / 1;
object-fit: cover;
border-radius: 6px;
background: #f2f0ec;
}
.patternName {
font-family: var(--font-heading);
font-weight: 500;
font-size: 14px;
line-height: 1.3;
}
.tags { font-size: 11px; color: var(--color-text-muted); min-height: 16px; letter-spacing: 0.02em; }
.muted { color: var(--color-text-muted); font-size: 13px; }
.error { color: #8b3333; font-size: 13px; font-weight: 500; }
.shareBox {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New';
padding: 14px;
border: 1px dashed var(--color-border);
border-radius: var(--radius);
background: var(--color-accent-light);
word-break: break-all;
font-size: 13px;
}
.footer { margin-top: 28px; }
.checkbox { display: flex; gap: 10px; align-items: center; font-size: 13px; text-transform: none; letter-spacing: 0; }
.share { margin-top: 14px; }
@media (max-width: 600px) {
.row { flex-direction: column; }
.grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
h1 { font-size: 24px; }
}