create-electron-foundation
Version:
An interactive CLI to bootstrap a modern, type-safe, and scalable Electron application.
287 lines (253 loc) • 5.2 kB
CSS
/* Base Styles */
*,
*::before,
*::after {
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow-x: hidden;
}
/* Layout Components */
.app-layout {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
width: 100%;
min-height: 100vh;
background: linear-gradient(to bottom right, #818cf8, #9333ea);
}
.header {
display: flex;
width: 100%;
justify-content: flex-end;
border-radius: 0 0 0.5rem 0.5rem;
background-color: white;
height: 40px;
}
.page {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
max-width: 800px;
height: 100%;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
border-radius: 0.5rem;
max-width: 90%;
}
.scrollable {
overflow-y: auto;
}
.glass {
/* https://dev.to/kevinbism/recreating-apples-liquid-glass-effect-with-pure-css-3gpl */
position: relative;
padding: 1.25rem;
background: rgb(255 255 255 / 0.15);
-webkit-backdrop-filter: blur(2px) saturate(180%);
backdrop-filter: blur(2px) saturate(180%);
border: 1px solid rgb(255 255 255 / 0.8);
border-radius: 2rem;
box-shadow:
0 8px 32px rgb(31 38 135 / 0.2),
inset 0 4px 20px rgb(255 255 255 / 0.3);
}
.glass::after {
content: '';
pointer-events: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgb(255 255 255 / 0.1);
border-radius: 2rem;
-webkit-backdrop-filter: blur(1px);
backdrop-filter: blur(1px);
box-shadow:
inset -10px -8px 0 -11px rgb(255 255 255),
inset 0 -9px 0 -8px rgb(255 255 255);
opacity: 0.6;
z-index: -1;
filter: blur(1px) drop-shadow(10px 4px 6px black) brightness(115%);
}
.hero {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
max-width: 90%;
}
.reminders {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
width: 100%;
max-width: 90%;
gap: 1rem;
color: white;
}
.card-header {
display: flex;
align-items: center;
gap: 1rem;
}
.icon {
display: flex;
position: relative;
align-items: center;
justify-content: center;
border-radius: 0.75rem;
height: 2.5rem;
width: 2.5rem;
font-size: 1.5rem;
}
.icon::after {
border-radius: 0.75rem;
}
.card-title {
margin: 0;
font-size: 1.5rem;
font-weight: 600;
color: white;
}
.card-subtitle {
margin: 0;
margin-top: 0.25rem;
font-size: 1.125rem;
color: white;
}
.card-content {
color: white;
}
.cef-config {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 0.5rem;
color: #9333ea;
background-color: white;
padding: 1rem;
max-width: 90%;
gap: 0.25rem;
}
.cef-config span {
font-size: 0.875rem;
padding: 0;
margin: 0;
}
.item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
border-bottom: 2px solid #e5e7eb;
padding: 0.5rem;
gap: 0.25rem;
}
.item:last-child {
border-bottom: 0;
}
.env-vars {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 0.5rem;
color: #9333ea;
background-color: white;
padding: 1rem;
}
.input {
width: 100%;
padding: 0.75rem;
border: 1px solid #e5e7eb;
border-radius: 0.5rem;
background-color: white;
color: #374151;
font-size: 1rem;
transition: border-color 0.2s ease-in-out;
}
.input:focus {
outline: none;
border-color: #9333ea;
box-shadow: 0 0 0 3px rgb(147 51 234 / 0.1);
}
/* Base button with CSS custom properties */
.btn {
--btn-padding: 6px 3px;
--btn-border: 2px solid rgb(255 255 255 / 0.8);
--btn-radius: 0.5rem;
--btn-bg: transparent;
--btn-hover-bg: rgb(255 255 255 / 0.1);
--btn-transition: all 300ms ease-in-out;
--btn-color: white;
padding: var(--btn-padding);
border: var(--btn-border);
border-radius: var(--btn-radius);
background: var(--btn-bg);
color: var(--btn-color);
transition: var(--btn-transition);
}
.btn:hover {
/* background: var(--btn-hover-bg);
border-color: white; */
transform: translateY(-2px);
cursor: pointer;
}
/* Gradient button - just override the background */
.btn-gradient {
--btn-bg: linear-gradient(to bottom right, rgb(129 140 248), rgb(147 51 234));
}
/* Header menu button - override background and radius */
.btn-gradient-header-menu {
--btn-bg: linear-gradient(to bottom right, rgb(129 140 248), rgb(147 51 234));
--btn-radius: 0 0 0.5rem 0.5rem;
}
.btn-gradient-header-menu:hover {
transform: translateY(2px);
}
/* Active state for current route */
.btn-gradient-header-menu.active {
--btn-bg: white;
--btn-color: #9333ea;
--btn-border: 2px solid #e5e7eb;
}
/* Typography */
h1 {
text-align: center;
color: white;
font-size: 2rem;
font-weight: bold;
margin: 0;
padding: 0;
}
h2 {
font-size: 1.5rem;
line-height: 2rem;
font-weight: bold;
text-align: center;
margin: 0;
padding: 0;
}
p {
font-size: 0.875rem;
padding: 0;
margin: 0;
}