branch-commit-compare
Version:
Git branch comparison tool
242 lines (202 loc) • 4.49 kB
CSS
/**
* Base Styles - Global Resets and Typography
* Playful Geometric Design System
*/
/* ========== Global Reset ========== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: var(--font-body);
font-size: var(--font-size-base);
font-weight: var(--font-weight-normal);
line-height: var(--line-height-normal);
color: var(--color-fg);
background: var(--color-bg);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
padding: var(--spacing-4);
min-height: 100vh;
position: relative;
}
/* Playful dot grid background pattern */
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: radial-gradient(
circle,
var(--color-border) 1px,
transparent 1px
);
background-size: 24px 24px;
opacity: 0.4;
pointer-events: none;
z-index: 0;
}
body > * {
position: relative;
z-index: 1;
}
/* ========== Typography ========== */
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-display);
font-weight: var(--font-weight-extrabold);
line-height: var(--line-height-tight);
color: var(--color-fg);
margin-bottom: var(--spacing-4);
}
h1 {
font-size: var(--font-size-4xl);
position: relative;
display: inline-block;
}
/* Squiggle decoration under h1 */
h1::after {
content: "";
position: absolute;
bottom: -8px;
left: 0;
width: 100%;
height: 4px;
background-image: url("data:image/svg+xml,%3Csvg width='100' height='4' viewBox='0 0 100 4' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 2 Q 5 0, 10 2 T 20 2 T 30 2 T 40 2 T 50 2 T 60 2 T 70 2 T 80 2 T 90 2 T 100 2' stroke='%238B5CF6' stroke-width='2' fill='none'/%3E%3C/svg%3E");
background-repeat: repeat-x;
background-size: 100px 4px;
}
h2 {
font-size: var(--font-size-3xl);
}
h3 {
font-size: var(--font-size-2xl);
}
p {
margin-bottom: var(--spacing-4);
}
/* ========== Links ========== */
a {
color: var(--color-accent);
text-decoration: none;
transition: color var(--transition-fast);
}
a:hover {
color: var(--color-accent-light);
}
a:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
border-radius: var(--radius-small);
}
/* ========== Buttons Reset ========== */
button {
font-family: inherit;
font-size: inherit;
line-height: inherit;
cursor: pointer;
border: none;
background: none;
}
button:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
/* ========== Inputs Reset ========== */
input,
textarea,
select {
font-family: inherit;
font-size: inherit;
line-height: inherit;
color: inherit;
}
input:focus,
textarea:focus,
select:focus {
outline: none;
}
/* ========== Accessibility ========== */
/* Focus visible for keyboard navigation */
:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
/* Skip to content link */
.skip-to-content {
position: absolute;
top: -40px;
left: 0;
background: var(--color-accent);
color: white;
padding: var(--spacing-2) var(--spacing-4);
border-radius: var(--radius-base);
z-index: var(--z-tooltip);
}
.skip-to-content:focus {
top: var(--spacing-2);
}
/* Screen reader only */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
/* ========== Scrollbar Styling - Playful ========== */
::-webkit-scrollbar {
width: 14px;
height: 14px;
}
::-webkit-scrollbar-track {
background: var(--color-bg);
border: 2px solid var(--color-border);
border-radius: var(--radius-sm);
}
::-webkit-scrollbar-thumb {
background: var(--color-accent);
border-radius: var(--radius-sm);
border: 2px solid var(--color-fg);
box-shadow: var(--shadow-small);
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-accent-light);
box-shadow: var(--shadow-small-hover);
}
/* ========== Selection ========== */
::selection {
background: var(--color-tertiary);
color: var(--color-fg);
}
::-moz-selection {
background: var(--color-tertiary);
color: var(--color-fg);
}
/* ========== Reduced Motion ========== */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms ;
animation-iteration-count: 1 ;
transition-duration: 0.01ms ;
}
html {
scroll-behavior: auto;
}
}