/* ===== Starlight Custom Styles ===== */ /* ── Modern Color Theme ── */ :root { --sl-color-accent-low: #e0e7ff; --sl-color-accent: #4f46e5; --sl-color-accent-high: #3730a3; --sl-color-bg-nav: #f8fafc; --sl-color-bg: #ffffff; --sl-color-text: #1e293b; --sl-color-text-accent: #4f46e5; /* MessageBubble — iMessage style */ --bubble-left-bg: #e9e9eb; --bubble-left-bg-top: #f0f0f3; --bubble-left-fg: #1c1c1e; --bubble-right-bg: #0a84ff; --bubble-right-bg-top: #1a8eff; --bubble-right-fg: #ffffff; --bubble-gityo-bg: #c8c4e8; --highlight-bg: #e0e7ff; --highlight-fg: #3730a3; /* Dyslexia quote bubble — warm amber */ --bubble-dyslexia-bg: #fef3c7; --bubble-dyslexia-bg-top: #fef9e7; --bubble-dyslexia-fg: #1c1c1e; } :root[data-theme="dark"] { --sl-color-accent-low: #1e1b4b; --sl-color-accent: #818cf8; --sl-color-accent-high: #a5b4fc; --sl-color-bg-nav: #0f172a; --sl-color-bg: #1e293b; --sl-color-text: #e2e8f0; --sl-color-text-accent: #a5b4fc; /* MessageBubble dark */ --bubble-left-bg: #2c2c2e; --bubble-left-bg-top: #38383a; --bubble-left-fg: #e5e5ea; --bubble-right-bg: #0a84ff; --bubble-right-bg-top: #1a8eff; --bubble-right-fg: #ffffff; --bubble-gityo-bg: #3a3658; --highlight-bg: #312e81; --highlight-fg: #c7d2fe; /* Dyslexia quote bubble dark */ --bubble-dyslexia-bg: #3d3520; --bubble-dyslexia-bg-top: #4a3f28; --bubble-dyslexia-fg: #fde68a; } /* ── Readable Typography ── */ .sl-markdown-content { line-height: 1.75; color: var(--sl-color-text); } .sl-markdown-content img { border: 1px solid var(--sl-color-gray-4); border-radius: 6px; } .sl-markdown-content p { margin-bottom: 1em; text-indent: 1em; } /* 吹き出しの中と、中央寄せ・右寄せの段落は字下げしない */ .sl-markdown-content .bln p, .sl-markdown-content p[style*="center"], .sl-markdown-content p[style*="right"] { text-indent: 0; } /* ── Stylish Headings ── */ .sl-markdown-content h2 { margin-top: 0.5em !important; margin-bottom: 0.5em !important; } .sl-heading-wrapper.level-h2 { margin-top: 0.5em !important; } .sl-markdown-content h3, .sl-markdown-content h4, .sl-markdown-content h5 { font-weight: 600; line-height: 1.4; letter-spacing: 0.02em; } .sl-markdown-content h3 { font-size: 1em; margin-top: 1.2em; margin-bottom: 0.3em; padding-left: 0.6em; border-left: 3px solid var(--sl-color-accent); color: var(--sl-color-text); } .sl-markdown-content h4 { font-size: 0.95em; margin-top: 1em; margin-bottom: 0.2em; opacity: 0.8; } .sl-markdown-content h5 { font-size: 0.9em; margin-top: 1.2em; opacity: 0.7; text-transform: none; } /* ── Subtle Links ── */ /* ── Stylish Tables ── */ .sl-markdown-content table:not(:where(.not-content *)) { display: table; width: 100%; border-collapse: separate; border-spacing: 0; margin: 1rem 0; font-size: 0.9em; overflow: hidden; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06); } .sl-markdown-content thead th { background: var(--sl-color-accent-low); color: var(--sl-color-accent-high); padding: 0.6rem 0.75rem; text-align: left; font-weight: 600; font-size: 0.85em; border-bottom: 2px solid var(--sl-color-accent); } .sl-markdown-content tbody td { padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--sl-color-gray-5); vertical-align: top; } .sl-markdown-content tbody tr:last-child td { border-bottom: none; } .sl-markdown-content tbody tr:hover { background: var(--sl-color-gray-5); } .sl-markdown-content tbody tr:nth-child(even) { background: var(--sl-color-gray-6); } .sl-markdown-content tbody tr:nth-child(even):hover { background: var(--sl-color-gray-5); } /* ── 折りたたみ(アーカイブのリンク一覧など) ── */ .sl-markdown-content details { margin: 1rem 0; border: 1px solid var(--sl-color-gray-5); border-radius: 8px; overflow: hidden; } .sl-markdown-content details > summary { cursor: pointer; padding: 0.7rem 1rem; font-weight: 600; background: var(--sl-color-accent-low); color: var(--sl-color-accent-high); } .sl-markdown-content details[open] > summary { border-bottom: 1px solid var(--sl-color-gray-5); } .sl-markdown-content details > table { margin: 0; border-radius: 0; box-shadow: none; } /* ── アーカイブの表(保存日・更新日の列) ── */ .archive-table table th:nth-child(2), .archive-table table td:nth-child(2), .archive-table table th:nth-child(3), .archive-table table td:nth-child(3) { white-space: nowrap; width: 1%; } .archive-table table th:nth-child(3), .archive-table table td:nth-child(3) { font-size: 0.72em; color: var(--sl-color-gray-3); } .archive-table table td:nth-child(3) small { font-size: 1em; color: inherit; } .archive-table .old-note { display: block; font-size: 0.78em; color: var(--sl-color-gray-3); line-height: 1.5; } /* ── 技術的な補足(本文より一段小さい注記。ノートとは区別する) ── */ .tech-note { margin: 1.6rem 0; padding: 0.9rem 1.1rem; border-left: 3px solid var(--sl-color-gray-4, #bbb); border-radius: 4px; background: var(--sl-color-bg-sidebar, transparent); font-size: 0.88em; line-height: 1.75; color: var(--sl-color-gray-2, inherit); } .tech-note > :first-child { margin-top: 0; } .tech-note > :last-child { margin-bottom: 0; } .tech-note .tech-note-title { margin: 0 0 0.4rem; font-size: 1em; font-weight: 700; color: var(--sl-color-text, inherit); } /* ── 市民がよく使う情報のカード(アプリ・緊急時の情報)── */ .info-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); gap: 0.7rem; margin: 1rem 0; } .info-card { display: flex; gap: 0.75rem; align-items: flex-start; margin: 0; padding: 0.85rem 1rem; border: 1px solid var(--sl-color-gray-5); border-radius: 10px; background: var(--sl-color-bg-sidebar, transparent); } .info-card--alert { border-color: var(--sl-color-orange-high, #b95000); } .info-card-icon { flex: none; margin: 0; font-size: 1.6rem; line-height: 1.1; } .info-card > div { flex: 1 1 auto; min-width: 0; } .info-card > div > p { margin: 0.3rem 0 0; font-size: 0.9rem; text-align: left; } .info-card > div > p:first-child { margin-top: 0; font-size: 0.95rem; } .info-card ul { margin: 0.3rem 0 0; padding-inline-start: 1.1rem; font-size: 0.9rem; text-align: left; } .info-card ul li { margin: 0.15rem 0; line-height: 1.6; } .info-card-links a { font-weight: 700; } /* ── 代表電話などの案内ボックス ── */ .info-callout { display: flex; gap: 0.85rem; align-items: center; margin: 1rem 0; padding: 0.9rem 1.1rem; border: 2px solid var(--sl-color-accent); border-radius: 10px; background: var(--sl-color-accent-low); } .info-callout-icon { flex: none; margin: 0; font-size: 1.8rem; line-height: 1; } .info-callout-body p { margin: 0; text-align: left; } .info-callout-label { font-size: 0.82rem; opacity: 0.85; } .info-callout .info-callout-tel { font-size: 1.4rem; font-weight: 800; letter-spacing: 0.02em; line-height: 1.2; } .info-callout-body .info-callout-note { margin-top: 0.35rem; font-size: 0.85rem; } /* Tables inside bubbles */ .bln table { display: table !important; width: 100%; font-size: 0.88em; border-radius: 6px; background: var(--sl-color-bg); border: 1px solid var(--sl-color-gray-5); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06); color: var(--sl-color-text); } .bln.bleft thead th { background: var(--sl-color-gray-7); color: var(--sl-color-text); border-bottom: 2px solid var(--sl-color-gray-4); } .bln.bleft tbody td { border-bottom: 1px solid var(--sl-color-gray-6); } .bln.bleft tbody tr:hover { background: var(--sl-color-gray-6); } .bln.bleft tbody tr:nth-child(even) { background: var(--sl-color-gray-7); } .bln.bright thead th { background: var(--sl-color-gray-7); color: var(--sl-color-text); border-bottom: 2px solid var(--sl-color-gray-4); } .bln.bright tbody td { border-bottom: 1px solid var(--sl-color-gray-6); } .bln.bright tbody tr:hover { background: var(--sl-color-gray-6); } .bln.bright tbody tr:nth-child(even) { background: var(--sl-color-gray-7); } /* Tables inside note asides */ .starlight-aside--note table { box-shadow: none; border: 1px solid var(--sl-color-gray-5); background: var(--sl-color-bg); width: auto; max-width: 100%; } .starlight-aside--note thead th { background: var(--sl-color-gray-7); color: var(--sl-color-text); border-bottom-color: var(--sl-color-gray-4); } .starlight-aside--note tbody tr:nth-child(even) { background: var(--sl-color-gray-7); } /* ── Subtle Links ── */ .sl-markdown-content a { text-decoration: none; } /* External link icon globally */ .sl-markdown-content a[href^="http"]::after { content: " ↗"; font-size: 0.75em; } /* Links inside bubbles */ .bln a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; font-weight: 500; } .bln a[href^="/"]::before { content: "🔗 "; font-size: 0.85em; } .bln.bleft a { color: #2563eb; text-decoration-color: #93c5fd; } .bln.bleft a:hover { background: rgba(37, 99, 235, 0.1); border-radius: 2px; } .bln.bright a { color: #e0f2fe; text-decoration-color: rgba(255, 255, 255, 0.6); } .bln.bright a:hover { background: rgba(255, 255, 255, 0.15); border-radius: 2px; } /* ── Top fade effect (like iPhone) ── */ /* Kaigiroku links spacing */ #kaigiroku { margin-bottom: 0.25rem !important; display: flex; gap: 0.5rem; justify-content: flex-end; flex-wrap: wrap; } #kaigiroku a[href^="http"]::after { content: " ↗"; font-size: 0.8em; } /* Hide the overview link in TOC */ /* ── Nicer note asides ── */ .starlight-aside--note { --sl-color-asides-text-accent: var(--sl-color-accent-high); --sl-color-asides-border: var(--sl-color-accent); background: var(--sl-color-accent-low); border-radius: 6px; padding: 0.75rem 1rem; margin: 0.75rem 0; font-size: 0.95em; border: none; box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.06); position: relative; } .starlight-aside--note::before { content: ""; position: absolute; top: -4px; right: 20px; width: 32px; height: 8px; background: var(--sl-color-accent); border-radius: 2px; opacity: 0.5; } .starlight-aside--note .starlight-aside__title { font-size: 0.9em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.7; margin-bottom: 0.25rem; } .starlight-aside--tip { --sl-color-asides-text-accent: #065f46; --sl-color-asides-border: #10b981; background: #ecfdf5; border-radius: 6px; padding: 0.75rem 1rem; margin: 0.75rem 0; font-size: 0.95em; border: none; box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.06); position: relative; } .starlight-aside--tip::before { content: ""; position: absolute; top: -4px; right: 20px; width: 32px; height: 8px; background: #10b981; border-radius: 2px; opacity: 0.5; } :root[data-theme="dark"] .starlight-aside--tip { --sl-color-asides-text-accent: #6ee7b7; --sl-color-asides-border: #059669; background: #022c22; } :root[data-theme="dark"] .starlight-aside--tip::before { background: #059669; } main::before { content: ""; position: fixed; top: 0; left: 0; right: 0; height: 6rem; background: linear-gradient(180deg, var(--sl-color-bg) 0%, transparent 100%); pointer-events: none; z-index: 10; } /* ── Text Justification ── */ p, .sl-sidebar a, #starlight__sidebar a { text-align: justify; } /* ── Sidebar navigation ── */ /* * 左サイドバーのトップレベルに、セクションの区切りと項目アイコンを付ける。 * 番号は astro.config.mjs の sidebar の並び順。 * 1 ホーム | * 2 実績 / 3 一般質問 / 4 委員会・請願 / 5 メディア掲載 | * 6 ディスレクシアについて / 7 活動を支えるツール | * 8 ご支援 / 9 コンタクト / 10 私の方針 * サイドバーを並べ替えたときは、ここも見直すこと。 */ /* 項目アイコン(24x24の線画SVG。マスクとして使い、色はCSS側で指定する) */ #starlight__sidebar ul.top-level > li:nth-child(1) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(2) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.6 4A8.4 8.4 0 1 0 20.1 10' stroke-width='1.8'/%3E%3Cpath d='m7.6 12.6 3.4 3.2L21.5 2.8' stroke-width='2.6'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(3) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.2c0 4.2-3.8 7.6-8.5 7.6-1 0-2-.2-2.9-.5L4 20.4l1.4-3.6A7.2 7.2 0 0 1 3.5 11.2C3.5 7 7.3 3.6 12 3.6s8.5 3.4 8.5 7.6z'/%3E%3Cpath d='M10.2 9.4a2.3 2.3 0 0 1 4.4.9c0 1.5-2.2 2.2-2.2 2.2v1'/%3E%3Cpath d='M12.4 15.6h.01'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(4) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z'/%3E%3Cpath d='M14 3v6h6'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(5) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h13v14H4z'/%3E%3Cpath d='M17 9h3v8a2 2 0 0 1-2 2h-1'/%3E%3Cpath d='M7 9h7M7 13h7M7 16h4'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(6) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7S9.5 5 5 5v12c4.5 0 7 2 7 2s2.5-2 7-2V5c-4.5 0-7 2-7 2z'/%3E%3Cpath d='M12 7v12'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(7) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.7 12.7 16.1 15.2 8.8 8 11.4 5.3z' stroke-width='2'/%3E%3Cpath d='m12 12-8.6 8.6' stroke-width='2.6'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(8) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-9a4 4 0 0 1 7-2.6A4 4 0 0 1 19 11c0 4.6-7 9-7 9z'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(9) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16v12H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); } #starlight__sidebar ul.top-level > li:nth-child(10) { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5z'/%3E%3C/svg%3E"); } /* アイコン本体 */ #starlight__sidebar ul.top-level > li > a > span::before, #starlight__sidebar ul.top-level > li > details > summary > .group-label::before { content: ""; display: inline-block; width: 1.1em; height: 1.1em; margin-inline-end: 0.45em; vertical-align: -0.2em; background-color: var(--nav-icon-color, var(--sl-color-gray-3)); -webkit-mask: var(--nav-icon) center / contain no-repeat; mask: var(--nav-icon) center / contain no-repeat; } /* 現在地のアイコンはアクセント色にする */ #starlight__sidebar ul.top-level > li > a[aria-current="page"] > span::before, #starlight__sidebar ul.top-level > li:has(a[aria-current="page"]) > details > summary > .group-label::before { --nav-icon-color: var(--sl-color-text-accent); } /* セクションの区切りは、項目の間隔だけで示す(見出しも横線も使わない) */ #starlight__sidebar ul.top-level > li:nth-child(2), #starlight__sidebar ul.top-level > li:nth-child(6), #starlight__sidebar ul.top-level > li:nth-child(8) { margin-top: 1.7rem; } /* 項目の文字を少し軽くして、見出しとの階層をつける */ #starlight__sidebar ul.top-level > li > a, #starlight__sidebar ul.top-level > li > details > summary .group-label > .large { font-weight: 500; } /* グループの中の見出し(年度・月など)は一段小さく */ #starlight__sidebar ul.top-level ul .group-label > .large { font-size: var(--sl-text-sm); font-weight: 500; } /* 一般質問のアイコンは少し大きく(主要なコンテンツのため) */ #starlight__sidebar ul.top-level > li:nth-child(3) > a > span::before, #starlight__sidebar ul.top-level > li:nth-child(3) > details > summary > .group-label::before { width: 1.2em; height: 1.2em; } /* 現在地の下地は、アクセントの淡い色にする(既定の濃い塗りは主張が強いため) */ #starlight__sidebar ul.top-level [aria-current="page"], #starlight__sidebar ul.top-level [aria-current="page"]:hover, #starlight__sidebar ul.top-level [aria-current="page"]:focus { color: var(--sl-color-text-accent); background-color: var(--sl-color-accent-low); } /* ── Admonition title inline ── */ .sl-banner .title, aside .title { display: inline; } /* ── Mermaid centering ── */ .mermaid-container { text-align: center; } /* Mermaid diagram support */ /* Mermaid centering */ .sl-markdown-content p:has(> svg) { text-align: center !important; } /* Mermaid diagrams: Astro's MDX pipeline drops mermaid's inline