slidev-theme-oqtopus
Version:
Slidev theme for OQTOPUS presentations
220 lines (191 loc) • 4.99 kB
CSS
:root {
/* OQTOPUS Brand Colors - based on logo */
--oqtopus-red: #E53E3E; /* Primary red from logo */
--oqtopus-blue: #2B6CB0; /* Primary blue from logo */
--oqtopus-dark: #1A202C; /* Dark navy/black from logo */
--oqtopus-light: #FFFFFF; /* White */
/* Theme color mapping */
--slidev-theme-primary: var(--oqtopus-blue);
--slidev-theme-secondary: var(--oqtopus-red);
--slidev-theme-accent: #4299E1; /* Lighter blue accent */
--slidev-theme-background: #FAFAFA; /* Subtle off-white */
--slidev-theme-text: var(--oqtopus-dark);
--slidev-theme-muted: #718096; /* Muted text */
/* Business theme additions */
--slidev-theme-success: #38A169;
--slidev-theme-warning: #D69E2E;
--slidev-theme-error: var(--oqtopus-red);
--slidev-theme-gradient: linear-gradient(135deg, var(--oqtopus-blue), var(--oqtopus-red));
--slidev-theme-shadow: 0 10px 25px rgba(26, 32, 44, 0.1);
/* Typography */
--slidev-font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
--slidev-font-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
}
.slidev-layout.cover,
.slidev-layout.intro {
@apply h-full grid;
background: linear-gradient(135deg, var(--slidev-theme-primary), var(--slidev-theme-secondary));
color: white;
padding: 0 ; /* Override general padding for cover slides */
h1 {
@apply text-5xl leading-20 font-bold;
background: linear-gradient(45deg, #ffffff, var(--slidev-theme-accent));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
h1 + p {
@apply -mt-2 opacity-80 mb-4 text-lg;
}
p + h2,
ul + h2,
table + h2 {
@apply mt-8;
}
}
/* General slide styling with proper containment */
.slidev-layout {
background-color: var(--slidev-theme-background);
color: var(--slidev-theme-text);
font-family: var(--slidev-font-family);
line-height: 1.6;
padding: 1.5rem 1.5rem;
box-sizing: border-box;
max-width: 100vw;
max-height: 100vh;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
/* Compact typography for better slide containment */
.slidev-layout h1 {
font-size: 2rem;
font-weight: 700;
line-height: 1.1;
margin-bottom: 1rem;
margin-top: 0;
color: var(--oqtopus-dark);
}
.slidev-layout h2 {
font-size: 1.5rem;
font-weight: 600;
line-height: 1.2;
margin-bottom: 0.75rem;
margin-top: 0;
color: var(--oqtopus-blue);
border-bottom: 2px solid var(--oqtopus-red);
padding-bottom: 0.25rem;
}
.slidev-layout h3 {
font-size: 1.25rem;
font-weight: 500;
line-height: 1.3;
margin-bottom: 0.625rem;
margin-top: 0;
color: var(--oqtopus-blue);
}
.slidev-layout p {
font-size: 0.95rem;
margin-bottom: 0.75rem;
margin-top: 0;
color: var(--slidev-theme-text);
}
/* Code block styling */
.slidev-layout pre {
@apply rounded-lg;
border: 2px solid var(--oqtopus-blue);
background: var(--oqtopus-dark);
box-shadow: var(--slidev-theme-shadow);
}
.slidev-layout code {
font-family: var(--slidev-font-mono);
background: rgba(43, 108, 176, 0.1);
padding: 0.25rem 0.5rem;
border-radius: 0.375rem;
font-size: 0.9em;
}
/* Compact business elements */
.oqtopus-highlight {
background: var(--slidev-theme-gradient);
padding: 0.75rem 1.5rem;
border-radius: 0.75rem;
color: white;
font-weight: 600;
box-shadow: var(--slidev-theme-shadow);
margin: 1rem 0;
font-size: 0.9rem;
}
.oqtopus-highlight strong {
font-weight: 800; /* さらに太くする */
}
.oqtopus-highlight h2 {
color: white; /* タイトルを白に戻す */
}
.oqtopus-card {
background: white;
border-radius: 0.75rem;
padding: 1.25rem;
box-shadow: var(--slidev-theme-shadow);
border: 2px solid var(--oqtopus-blue);
margin: 0.75rem 0;
}
.oqtopus-badge {
background: var(--oqtopus-blue);
color: white;
padding: 0.5rem 1rem;
border-radius: 2rem;
font-weight: 600;
font-size: 0.875rem;
display: inline-block;
}
.oqtopus-badge h2 {
color: white; /* タイトルを白に戻す */
}
/* List styling */
.slidev-layout ul {
list-style: none;
padding-left: 0;
}
.slidev-layout li {
position: relative;
padding-left: 1.5rem;
margin-bottom: 0.2rem;
font-size: 0.9rem;
}
.slidev-layout li::before {
content: '';
position: absolute;
left: 0;
top: 0.5rem;
width: 0.5rem;
height: 0.5rem;
background: var(--oqtopus-red);
border-radius: 50%;
transform: translateY(-50%);
}
/* Table styling */
.slidev-layout table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
border-radius: 1rem;
overflow: hidden;
box-shadow: var(--slidev-theme-shadow);
margin: 1.5rem 0;
}
.slidev-layout th {
background: var(--oqtopus-blue);
color: white;
padding: 1rem;
font-weight: 600;
text-align: left;
}
.slidev-layout td {
padding: 1rem;
border-bottom: 1px solid rgba(43, 108, 176, 0.1);
background: white;
}
.slidev-layout tr:hover td {
background: rgba(43, 108, 176, 0.05);
}