Skip to content

Ptt.cc - Solarized Light Theme by bearhydrapuppisa

Screenshot of Ptt.cc - Solarized Light Theme

Details

Authorbearhydrapuppisa

LicenseNo License

Categorywww.ptt.cc

Created

Updated

Code size62 kB

Code checksuma1d94fdd

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

為 "www.ptt.cc"(批踢踢實業坊網頁版)套用 "Solarized Light" 配色主題、調整版面設計,並加入額外視覺特效。
※ 已整合 "PTT Web Enhanced" 樣式。

Notes

建議搭配以下使用者腳本及瀏覽器擴充套件:

所有色彩樣式版本:

Ptt.cc - Dracula Theme
Ptt.cc - Nord Theme
Ptt.cc - Solarized Light Theme

Source code

Source code has over 10K characters, so we truncated it. You can inspect the full source code on install link.
/* ==UserStyle==
@name           Ptt.cc - Solarized Light Theme
@namespace      https://userstyles.world/user/bearhydrapuppisa
@author         114514
@description    為 "www.ptt.cc"(批踢踢實業坊網頁版)套用 "Solarized Light" 配色主題、調整版面設計,並加入額外視覺特效。
@version        2025.05.01.1
@license        CC0-1.0
@homepageURL    https://userstyles.world/style/22153/ptt-cc-solarized-light-theme
@preprocessor stylus
==/UserStyle== */

@-moz-document domain("www.ptt.cc") {

    /* ==========================================================================
       1. 基本設定 & 變數 (Solarized Light Theme)
       ========================================================================== */
    :root {
        /* --- 1.1 Solarized Light 基本配色 --- */
        --sl-base03:  #002b36; /* Darkest */
        --sl-base02:  #073642; /* Dark */
        --sl-base01:  #586e75; /* Content Emphasis / Improved Contrast */
        --sl-base00:  #657b83; /* Content Secondary */
        --sl-base0:   #839496; /* Content Main / Improved Contrast Secondary */
        --sl-base1:   #93a1a1; /* Content Tertiary / Light Gray */
        --sl-base2:   #eee8d5; /* Light Background */
        --sl-base3:   #fdf6e3; /* Lightest Background */
        /* Accents */
        --sl-yellow:  #b58900;
        --sl-orange:  #cb4b16;
        --sl-red:     #dc322f;
        --sl-magenta: #d33682; /* Improved Visited Link */
        --sl-violet:  #6c71c4;
        --sl-blue:    #268bd2;
        --sl-cyan:    #2aa198;
        --sl-green:   #859900;

        /* --- 1.2 介面元件顏色 --- */
        --sl-visited-link: var(--sl-magenta);     /* 已訪問連結 (改為 Magenta 提高對比) */
        --sl-richcontent-bg: var(--sl-base2);     /* 內嵌內容背景 */
        --sl-polling-hover-bg: var(--sl-base1);   /* 投票區懸停背景 (也用於選單選項) */
        --sl-polling-active-bg: var(--sl-blue);   /* 投票區點擊背景 */
        --sl-shadow-color: rgba(88, 110, 117, 0.25); /* 通用陰影 (基於 sl-base01) */
        --sl-text-shadow-color: rgba(147, 161, 161, 0.5); /* 文字陰影 (基於 sl-base1) */

        /* --- 1.3 搜尋列顏色 --- */
        --sl-search-border-color: rgba(38, 139, 210, 0.3); /* sl-blue alpha */
        --sl-search-hover-border-color: var(--sl-blue);
        --sl-search-input-focus-border-color: var(--sl-cyan);
        --sl-search-glow-color: rgba(38, 139, 210, 0.15); /* sl-blue alpha */
        --sl-search-hover-glow-color: rgba(38, 139, 210, 0.5); /* sl-blue alpha */
        --sl-search-focus-glow-color: rgba(42, 161, 152, 0.5); /* sl-cyan alpha */

        /* --- 1.4 按鈕顏色 --- */
        --sl-btn-disabled-bg: var(--sl-base1);  /* 禁用按鈕背景 */
        --sl-btn-disabled-fg: rgba(131, 148, 150, 0.7); /* 禁用按鈕文字 (sl-base0 alpha) */
        --sl-btn-big-shadow: rgba(88, 110, 117, 0.35); /* 大按鈕陰影 (sl-base01 alpha) */
        --sl-btn-big-agree-bg-start: var(--sl-green);
        --sl-btn-big-agree-bg-end: #7a8c00; /* Slightly darker green */
        --sl-btn-big-agree-hover-bg-start: #98aa22; /* Lighter green */
        --sl-btn-big-agree-hover-bg-end: var(--sl-green);
        --sl-btn-big-disagree-bg: var(--sl-base2);
        --sl-btn-big-disagree-border: var(--sl-base1);
        --sl-btn-big-disagree-hover-bg: var(--sl-base1);
        --sl-btn-big-disagree-hover-border: var(--sl-red);
        --sl-btn-big-disagree-hover-fg: var(--sl-red); /* 不同意按鈕懸停文字顏色 (改善) */

        /* --- 1.5 PWE 擴充功能相關顏色 --- */
        --sl-floor-hover-bg: var(--sl-blue);   /* 推文樓層懸停背景 (窄螢幕) */
        --sl-menu-bg: var(--sl-base2); /* PWE 選單背景 */
        --sl-menu-border: var(--sl-base1); /* PWE 選單邊框 */
        --sl-menu-anchor-separator: rgba(147, 161, 161, 0.5); /* PWE 選單選項分隔線 (sl-base1 alpha) */
        --sl-menu-dropdown-shadow: rgba(88, 110, 117, 0.4); /* PWE 下拉選單陰影 (sl-base01 alpha) */
        --sl-notify-shadow: rgba(38, 139, 210, 0.3); /* PWE 通知視窗陰影 (sl-blue alpha) */
        --sl-pwe-board-hover-shadow: rgba(42, 161, 152, 0.5); /* PWE 看板連結懸停陰影 (sl-cyan alpha) */
        --sl-statistics-hover-shadow: rgba(38, 139, 210, 0.4); /* PWE 統計區懸停陰影 (sl-blue alpha) */

        /* --- 1.6 其他視覺效果顏色 --- */
        --sl-img-hover-shadow-color: rgba(38, 139, 210, 0.4); /* 圖片懸停陰影 (sl-blue alpha) */
        --sl-polling-glow-color: rgba(38, 139, 210, 0.4); /* 投票區懸停光暈 (sl-blue alpha) */

        /* --- 1.7 版面、字型與間距 --- */
        --default-border-radius: 6px;       /* 預設圓角 */
        --main-font-size: 1.3125rem;        /* 主要內文字體大小 (21px) */
        --meta-font-size: 1.125rem;         /* Meta 資訊字體大小 (18px) */
        --title-font-size: 2rem;            /* 文章標題字體大小 (32px) */
        --push-ip-font-size: 0.85em;        /* 推文 IP/時間字體大小 */
        --menu-font-size: 1.1rem;           /* PWE 選單觸發器字體大小 */
        --menu-item-font-size: 1.05rem;     /* PWE 選單選項字體大小 */
        --main-line-height: 1.7;            /* 主要內文行高 */
        --push-line-height: 1.5;            /* 推文行高 */
        --content-width: 52.5rem;           /* 主要內容區塊寬度 (840px) */
        --main-content-width: 67.5rem;      /* 整體容器最大寬度 (1080px) */
        --letter-spacing-main: 0.5px;       /* 主要內文字間距 */
        --letter-spacing-push: 0.5px;       /* 推文字間距 */

        /* --- 1.8 間距 --- */
        --spacing-xs: 0.25rem;  /* 4px */
        --spacing-sm: 0.5rem;   /* 8px */
        --spacing-md: 0.75rem;  /* 12px */
        --spacing-lg: 1rem;     /* 16px */
        --spacing-xl: 1.5rem;   /* 24px */
        --spacing-xxl: 2rem;    /* 32px */

        /* --- 1.9 焦點樣式 --- */
        --focus-outline-width: 2px;
        --focus-outline-offset: 2px;
        --sl-focus-ring-color: rgba(38, 139, 210, 0.4); /* 焦點外框光暈 (sl-blue alpha) */

        /* --- 1.10 推文對齊 (Flexbox) --- */
        --push-userid-width: 6.5em;
        --push-tag-margin-right: var(--spacing-xs);
        --push-userid-margin-right: var(--spacing-sm);
        --push-min-height: calc(var(--push-line-height) * 1em + var(--spacing-sm) * 2);

        /* --- 1.11 捲軸 (Firefox) --- */
        scrollbar-color: var(--sl-base1) var(--sl-base3); /* thumb track */
    }

    /* ==========================================================================
       1.5. 動畫關鍵影格
       ========================================================================== */
    /* Meta 值懸停 - 色彩變換 + 光暈 */
    @keyframes meta-value-color-shift-glow {
        0%, 100% {
            color: var(--sl-cyan);
            text-shadow: 0 0 4px var(--sl-cyan), 0 0 8px var(--sl-cyan), 1px 1px 3px var(--sl-text-shadow-color);
        }
        33% {
            color: var(--sl-green);
            text-shadow: 0 0 4px var(--sl-green), 0 0 8px var(--sl-green), 1px 1px 3px var(--sl-text-shadow-color);
        }
        66% {
            color: var(--sl-yellow);
            text-shadow: 0 0 4px var(--sl-yellow), 0 0 8px var(--sl-yellow), 1px 1px 3px var(--sl-text-shadow-color);
        }
    }

    /* 作者懸停特效 */
    @keyframes author-hover-effect {
        0%, 100% {
            color: var(--sl-orange);
            text-shadow: 0 0 4px var(--sl-orange), 0 0 8px var(--sl-orange), 1px 1px 4px var(--sl-text-shadow-color);
            transform: scale(1) rotate(0deg);
        }
        50% {
            color: var(--sl-yellow);
            text-shadow: 0 0 6px var(--sl-orange), 0 0 12px var(--sl-yellow), 1px 1px 4px var(--sl-text-shadow-color);
            transform: scale(1.03) rotate(-1deg);
        }
    }

    /* 時間懸停特效 */
    @keyframes time-hover-effect {
        0%, 100% {
            color: var(--sl-base00); /* Main Content */
            text-shadow: 0 0 4px var(--sl-base0), 1px 1px 4px var(--sl-text-shadow-color);
        }
        50% {
            color: var(--sl-base00); /* Main Content */
            text-shadow: 0 0 6px var(--sl-base0), 0 0 9px var(--sl-base1), 1px 1px 4px var(--sl-text-shadow-color); /* Glow with base1 */
        }
    }

    /* 標題懸停光暈 (變色) */
    @keyframes title-glow-pulse {
        0%, 100% {
            color: var(--sl-blue);
            text-shadow: 0 0 4px var(--sl-base1), 2px 2px 6px var(--sl-text-shadow-color);
            transform: scale(1);
        }
        50% {
            color: var(--sl-violet);
            text-shadow: 0 0 8px var(--sl-base1), 2px 2px 6px var(--sl-text-shadow-color);
            transform: scale(1.01);
        }
    }

    /* 爆文標籤特效 (加強縮放) */
    @keyframes hot-post-effect {
        0%, 100% {
            color: var(--sl-red);
            transform: scale(1.15);
        }
        50% {
            color: var(--sl-red);
            transform: scale(1.3);
        }
    }

    /* 噓文標籤晃動特效 */
    @keyframes shake-effect {
      0%, 100% { transform: translateX(0); }
      10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }
      20%, 40%, 60%, 80% { transform: translateX(2px); }
    }

    /* 彩蛋:貓捉老鼠 */
    @keyframes mouse-cat-chase {
        0%    { transform: translateX(5vw) scaleX(1); opacity: 0; }
        5%    { transform: translateX(0vw) scaleX(1); opacity: 0.9; }
        10%   { transform: translateX(-5vw) translateY(-5px) scaleX(1); opacity: 0.9; }
        30%   { transform: translateX(-25vw) translateY(5px) scaleX(1); }
        50%   { transform: translateX(-45vw) translateY(-5px) scaleX(1); }
        70%   { transform: translateX(-65vw) translateY(0px) scaleX(1); }
        95%   { transform: translateX(-80vw) translateY(-5px) scaleX(1); opacity: 0.9; }
        100%  { transform: translateX(-85vw) scaleX(1); opacity: 0; }
    }

    /* 彩蛋:小鳥飛行 */
    @keyframes bird-fly-across {
        0%    { transform: translateX(0) translateY(0) scaleX(1); opacity: 0.9; }
        25%   { transform: translateX(25vw) translateY(-20px) scaleX(-1); }
        50%   { transform: translateX(50vw) translateY(10px) scaleX(1); }
        75%   { transform: translateX(75vw) translateY(-15px) scaleX(-1); }
        95%   { transform: translateX(100vw) translateY(5px) scaleX(-1); opacity: 0.9; }
        100%  { transform: translateX(105vw) translateY(0) scaleX(-1); opacity: 0; }
    }
...

Reviews

No reviews yet.