Files

376 lines
8.3 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* =========================================================
PulseBoard — Temel katman (reset + yerleşim iskeleti)
========================================================= */
*,
*::before,
*::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html, body { height: 100%; }
html { -webkit-text-size-adjust: 100%; }
body {
font-family: var(--font);
background: var(--zemin);
color: var(--metin);
line-height: 1.55;
font-size: 15px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Yatay taşmayı engelle; dikeyde scroll HER ZAMAN gelmeli.
overflow: hidden KULLANMA — içerik uzarsa kullanıcı erişemez. */
overflow-x: hidden;
overflow-y: auto;
min-height: 100%;
}
/* Arka plan atmosferi: çok hafif radial aksanlar */
body::before {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
z-index: 0;
background:
radial-gradient(880px 520px at 8% -8%, rgba(45, 212, 191, .13), transparent 62%),
radial-gradient(760px 480px at 96% 4%, rgba(168, 85, 247, .12), transparent 64%),
radial-gradient(900px 620px at 52% 110%, rgba(56, 189, 248, .08), transparent 66%);
}
[data-tema="acik"] body::before {
background:
radial-gradient(880px 520px at 8% -8%, rgba(13, 148, 136, .10), transparent 62%),
radial-gradient(760px 480px at 96% 4%, rgba(124, 58, 237, .09), transparent 64%);
}
img, svg { display: block; max-width: 100%; }
button, input, select, textarea {
font: inherit;
color: inherit;
background: none;
border: none;
}
button { cursor: pointer; }
svg {
width: 100%;
height: 100%;
fill: none;
stroke: currentColor;
stroke-width: 1.9;
stroke-linecap: round;
stroke-linejoin: round;
}
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
h1, h2, h3, h4 { line-height: 1.24; letter-spacing: -0.02em; font-weight: 700; }
:focus-visible {
outline: 2px solid var(--teal);
outline-offset: 2px;
border-radius: var(--r-xs);
}
/* --- Yerleşim --- */
.uygulama-kabuk {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: var(--sidebar-g) minmax(0, 1fr);
min-height: 100vh;
}
.mobil-bar { display: none; }
.icerik {
min-width: 0;
padding: var(--bosluk-6) var(--bosluk-6) var(--bosluk-7);
max-width: var(--icerik-maks);
width: 100%;
}
/* --- Üst bölüm --- */
.ust-bolum {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--bosluk-5);
flex-wrap: wrap;
margin-bottom: var(--bosluk-6);
}
.selamlama {
font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.15rem);
font-weight: 800;
letter-spacing: -0.03em;
background: linear-gradient(100deg, var(--metin) 12%, var(--teal) 62%, var(--mavi) 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.tarih-satiri {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: var(--bosluk-2);
margin-top: 6px;
color: var(--metin-2);
font-size: .93rem;
}
.ayrac { color: var(--metin-3); }
.ust-sag {
display: flex;
align-items: center;
gap: var(--bosluk-4);
flex-wrap: wrap;
}
.hizli-ilerleme {
display: flex;
align-items: center;
gap: var(--bosluk-3);
padding: 8px 16px 8px 8px;
border: 1px solid var(--cizgi);
border-radius: var(--r-full);
background: var(--yuzey);
backdrop-filter: var(--blur);
box-shadow: var(--golge-1);
}
.halka { width: 44px; height: 44px; flex: none; }
.halka-zemin { stroke: var(--cizgi-guclu); stroke-width: 3.4; }
.halka-dolgu {
stroke: url(#yok) ;
stroke: var(--teal);
stroke-width: 3.4;
stroke-linecap: round;
stroke-dasharray: 113.1;
stroke-dashoffset: 113.1;
transform: rotate(-90deg);
transform-origin: 50% 50%;
transition: stroke-dashoffset var(--gecis-yavas), stroke var(--gecis);
}
.hizli-ilerleme-metin { display: flex; flex-direction: column; line-height: 1.2; }
.hizli-ilerleme-metin strong { font-size: 1.02rem; font-weight: 700; }
.hizli-ilerleme-metin span {
font-size: .72rem;
letter-spacing: .05em;
text-transform: uppercase;
color: var(--metin-3);
}
/* --- Sidebar --- */
.sidebar {
position: sticky;
top: 0;
align-self: start;
height: 100vh;
display: flex;
flex-direction: column;
gap: var(--bosluk-5);
padding: var(--bosluk-5) var(--bosluk-4);
border-right: 1px solid var(--cizgi);
background: linear-gradient(180deg, var(--zemin-2) 0%, rgba(9, 14, 26, .92) 100%);
backdrop-filter: var(--blur);
z-index: var(--z-sidebar);
}
[data-tema="acik"] .sidebar {
background: linear-gradient(180deg, #ffffff 0%, rgba(244, 247, 253, .92) 100%);
}
.sidebar-ust {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--bosluk-3);
}
.marka {
display: flex;
align-items: center;
gap: 10px;
padding: 4px 6px;
min-height: 44px; /* Dokunma hedefi: WCAG 2.5.5 */
box-sizing: border-box;
}
.logo-isaret {
width: 30px;
height: 30px;
flex: none;
border-radius: 10px;
background: var(--aksan);
box-shadow: 0 6px 20px -8px rgba(45, 212, 191, .85);
position: relative;
}
.logo-isaret::after {
content: "";
position: absolute;
inset: 4px;
border-radius: 7px;
background: var(--zemin-2);
opacity: .82;
}
.logo-isaret::before {
content: "";
position: absolute;
inset: 10px 6px;
border-radius: 3px;
background: var(--aksan);
z-index: 1;
}
.marka-metin { font-size: 1.06rem; font-weight: 600; letter-spacing: -.02em; }
.marka-metin strong { font-weight: 800; }
.sidebar-kapat { display: none; }
.menu { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.menu-ogesi {
display: flex;
align-items: center;
gap: var(--bosluk-3);
padding: 11px 13px;
border-radius: var(--r-sm);
color: var(--metin-2);
font-size: .94rem;
font-weight: 500;
border: 1px solid transparent;
transition: background var(--gecis-hizli), color var(--gecis-hizli), border-color var(--gecis-hizli);
position: relative;
}
.menu-ogesi svg { width: 19px; height: 19px; flex: none; }
.menu-ogesi:hover {
background: var(--yuzey-2);
color: var(--metin);
}
.menu-ogesi.aktif {
color: var(--metin);
background: var(--aksan-yumusak);
border-color: var(--cizgi-guclu);
}
.menu-ogesi.aktif::before {
content: "";
position: absolute;
left: -1px;
top: 50%;
translate: 0 -50%;
width: 3px;
height: 20px;
border-radius: var(--r-full);
background: var(--aksan);
}
.rozet {
margin-left: auto;
min-width: 22px;
padding: 1px 7px;
border-radius: var(--r-full);
background: rgba(45, 212, 191, .16);
color: var(--teal);
font-size: .74rem;
font-weight: 700;
text-align: center;
}
.sidebar-alt { display: flex; flex-direction: column; gap: var(--bosluk-3); }
.gunluk-kutu {
padding: 14px;
border: 1px solid var(--cizgi);
border-radius: var(--r-md);
background: var(--yuzey-2);
}
.gunluk-kutu-ust {
display: flex;
align-items: baseline;
justify-content: space-between;
font-size: .78rem;
letter-spacing: .05em;
text-transform: uppercase;
color: var(--metin-3);
margin-bottom: 10px;
}
.gunluk-kutu-ust strong { color: var(--teal); font-size: .95rem; letter-spacing: 0; }
.tema-degistir {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 13px;
border-radius: var(--r-sm);
border: 1px solid var(--cizgi);
color: var(--metin-2);
font-size: .88rem;
transition: background var(--gecis-hizli), color var(--gecis-hizli);
}
.tema-degistir svg { width: 17px; height: 17px; }
.tema-degistir:hover { background: var(--yuzey-2); color: var(--metin); }
/* --- Erişilebilirlik: içeriğe atla --- */
.atla-baglantisi {
position: absolute;
left: -9999px;
top: 8px;
z-index: 100;
padding: 12px 18px;
min-height: 44px; /* Dokunma hedefi: WCAG 2.5.5 */
display: inline-flex;
align-items: center;
box-sizing: border-box;
border-radius: var(--r-sm);
background: var(--teal);
color: #05221f;
font-weight: 600;
}
.atla-baglantisi:focus { left: 12px; }
.perde {
position: fixed;
inset: 0;
background: rgba(3, 7, 18, .62);
backdrop-filter: blur(3px);
z-index: var(--z-perde);
opacity: 0;
transition: opacity var(--gecis);
}
.perde.acik { opacity: 1; }
/* --- Yardımcı sınıflar --- */
.gizli { display: none !important; }
.gorunmez-metin {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
border: 0;
}