DuckDuckGo - Wider, Prettier and Customizable

Customizable UserCSS for DuckDuckGo

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

/* ==UserStyle==
@name           DuckDuckGo - Wider, Prettier and Customizable
@description    Customizable UserCSS for DuckDuckGo
@author         krisu (https://github.com/krisu5)
@namespace      github.com/krisu5/userstyles
@homepageURL    https://github.com/krisu5/userstyles/tree/master/DuckDuckGo%20-%20Wider%20Prettier%20and%20Customizable
@supportURL     https://github.com/krisu5/userstyles/issues
@version        1.0.9
@license        unlicense
@preprocessor   stylus
@var checkbox   ibm-plex-font      "Use 'IBM Plex Sans' font (needs installation)"              0
@var checkbox   wideScreen         "Wider layout (for 1920px+ wide resolution)"                 1
@var checkbox   biggerFont         "Bigger font (recommended when 'Wider layout' is enabled)"   1
@var checkbox   hideCheckmark      "Force hide visited link checkmark"                          0
@var checkbox   sidebarAnimation   "Delay showing sidebar in the pageload"                      1
@var checkbox   hideFeedback       "Hide feedback & promo related links"                        0
==/UserStyle== */

@-moz-document domain("duckduckgo.com") {

/* ==============================================================
   === [TOGGLE] Use "IBM Plex Sans" font (needs installation) ===
   ============================================================== */
    
if ibm-plex-font {
    /*
    ###################
    ## INSTALL FONTS ##
    ###################
    
    - Get the fonts:
      https://github.com/IBM/plex/releases/latest
      (TrueType recommended for Windows, for others use OpenType)
       
    - Go to "IBM-Plex-Sans" folder and install AT LEAST these fonts:
         - Bold
         - BoldItalic
         - Italic
         - Medium
         - MediumItalic
         - Regular
         - SemiBold
         - SemiBoldItalic
    */
    
    :root {
        --ibm-fontstack-1: "IBM Plex Sans", "DDG_ProximaNova", "DDG_ProximaNova_UI_0", "DDG_ProximaNova_UI_1", "DDG_ProximaNova_UI_2", "DDG_ProximaNova_UI_3", "DDG_ProximaNova_UI_4", "DDG_ProximaNova_UI_5", "DDG_ProximaNova_UI_6", "Proxima Nova", system, -apple-system, ".SFNSText-Regular", "San Francisco", "Segoe UI", "Roboto", "Helvetica Neue", "Lucida Grande", sans-serif;
        
        --ibm-fontstack-2: "DDG_ProximaNova", "DDG_ProximaNova_UI_0", "DDG_ProximaNova_UI_1", "DDG_ProximaNova_UI_2", "DDG_ProximaNova_UI_3", "DDG_ProximaNova_UI_4", "DDG_ProximaNova_UI_5", "DDG_ProximaNova_UI_6", "Proxima Nova", system, -apple-system, ".SFNSText-Regular", "San Francisco", "Segoe UI", "Roboto", "Helvetica Neue", "Lucida Grande", sans-serif;
        
        --ibm-fontstack-3: system, -apple-system, ".SFNSText-Regular", "San Francisco", "Segoe UI", "Roboto", "Helvetica Neue", "Lucida Grande", sans-serif;
    }
    
    body, *:not(.play_pause) a               { font-family: var(--ibm-fontstack-1); }
    
    input, textarea                          { font-family: var(--ibm-fontstack-1) !important; }

    #zero_click_wrapper *:not(option):not(a) { font-family: var(--ibm-fontstack-2); }
        
    #zero_click_wrapper option               { font-family: var(--ibm-fontstack-3); }
    
    .zci--timer .corner_btn.add_minute { line-height: 1.5em; }
        
    .zci--timer .corner_btn.close {
        top: -5px !important;
        right: 5px !important;
    }
    
    :is(#links, [data-testid="result"]) :where(h2, h3) {
        padding-bottom: 2px;
        font-weight: 500 !important;
    }
    
    [data-testid="result-title-a"] {
        font-weight: 500 !important;
    }
        
    .about-profiles__link { font-size: 0.8em; }
        
    .about-profiles__item { padding-top: 13px; }
}


/* ===========================================================
   === [TOGGLE] Wider layout (for 1920px+ wide resolution) ===
   =========================================================== */

if wideScreen {
    @media (min-width: 1460px) {
        .cw { max-width: 1700px; }

        .header__search-wrap, .zcm-wrap--header { max-width: 905px; }

        .header__search-wrap, .content__internal { padding-right: 0; }

        .modal--dropdown--settings.is-showing { margin-left: -108px; }

        .results--main, [data-testid="mainline"] {
            max-width: 900px !important;
            margin-right: 50px;
        }
        
        [data-testid="mainline"] {
          -webkit-flex: 0 0 900px !important;
          flex: 0 0 900px !important;
        }
        
        .result__sitelink-col { width: 415px !important; }

        .result--more {
            width: 920px;
            margin-left: -10px;
        }

        .module--carousel__item:not(:last-child) { margin-right: 1.6%; }
            
        .module--places { max-width: inherit; }
            
        .sitelink {
            width: 265px;
            padding-left: 35px;
        }
            
        .sitelink:nth-child(2n-1) { padding-right: inherit; }
            
        .is-link-style-exp:not(.is-mobile):not(.is-mobile-device) #links .results_links_deep { max-width: unset !important; }
    }
}


/* =========================================================================
   === [TOGGLE] Bigger font (recommended when "Wider layout" is enabled) ===
   ========================================================================= */
    
if biggerFont {
    html { font-size: 99%; }
    
    #zci-color_picker { font-size: 14px; }
        
    .module__link--two-line { font-size: 1.6em; }
        
    .zci--stopwatch .goodie-pane { width: 39.5%; }
        
    if ibm-plex-font {
        .result__sitelink-title {
            font-size: 1.12em;
            letter-spacing: 0.01em;
        }
    }
}


/* ==================================================
   === [TOGGLE] Force hide visited link checkmark ===
   ================================================== */

if hideCheckmark {
    .result__check { display: none; }
}

    
/* ======================================================
   === [TOGGLE] Delay showing sidebar in the pageload ===
   ====================================================== */

if sidebarAnimation {
    .results--sidebar {
        animation: showSidebar 0.65s ease-in-out 0.65s forwards;
        /* animation time = approximated load time for search results links */
        opacity: 0;
    }

    @keyframes showSidebar { to { opacity: 1; } }
}


/* ====================================================
   === [TOGGLE] Hide feedback & promo related links ===
   ==================================================== */

if hideFeedback {
    .feedback-btn, [class^="feedback-prompt"], .header--text_promo, [data-layout="spreadCTA"] { display: none; }
}


/* ===============
   === Results ===
   =============== */

:is(#links, .react-results--main) article:hover {
    background: hsl(0, 0%, 98%);
    border-color: var(--theme-col-border-ui);
}

:is(#links, .react-results--main) h3:hover { text-decoration: underline; }

#links img[src^="//external-content.duckduckgo.com"],
.react-results--main [src^="/assets/icons/favicons/"] { margin-top: -4px; }

.result__a, [data-testid="result-title-a"] { line-height: 1.3; }


/* =========================
   === Results seperator ===
   ========================= */

.result__pagenum, [arial-label^="Page "] span {
    font-size: 15px !important;
    margin-top: -4px;
    min-width: unset !important;
}

.result__pagenum--side {
    padding: 5px 10px;
    background-color: #fafafa;
    border-radius: 50%;
    border: 1px solid #d9d9d9;
}

[arial-label^="Page "] span {
    padding: 5px 12px;
    background-color: #fafafa !important;
    border-radius: 50%;
    border: 1px solid #d9d9d9 !important;
}

.result--sep { margin: 1em auto 1.25em; }

.result--sep--hr::before, [arial-label^="Page "] hr {
    background-color: #d9d9d9 !important;
    border-top: 1px solid #d9d9d9 !important;
}


/* ==============================
   === Instant Answer modules ===
   ============================== */

.zci--calculator .tile__calc .tile__past-calc { height: 60px; }

.zci--timer .name { margin-top: 27px; }

.zci--timer .time_display { margin-top: -20px; }

.zci--timer .corner_btn.reset { top: 5px; }

.zci--timer .corner_btn.close { top: -3px; }

.zci--timer .play_pause a {
    left: calc(50% + 2px);
    top: calc(50% + 2px);
}

.tile__ctrl__btn {
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
}

.zci--stopwatch .goodie-pane *, .zci--stopwatch #split_list * { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace !important; }

.zci--stopwatch .goodie-pane { width: 38.5% !important; }

.zci--stopwatch .time {
    font-size: 32px !important;
    font-variant-numeric: tabular-nums;
}

.zci--stopwatch #split_list .lap-num { font-weight: bold !important; }


/* =========================
   === Userscript Tweaks ===
   ========================= */
   
/* -------------------------------
   Try Google on Duck Duck Go - WF
   ------------------------------- */

/*
   This userscript adds button that allows quick Google search with same search query.
   
   These tweaks restyle the button and adds better spacing.
   
   INSTALLATION PAGE:
   https://greatest.deepsurf.us/en/scripts/389801-try-google-on-duck-duck-go-wf
*/

.header__search a[style*="background: #4285F4;"][href^="https://www.google.com/search?"] {
    padding: 3px 8px !important;
    margin: 4px 11px 0 0;
    border-radius: 3px;
}

.header__search a[style*="background: #4285F4;"][href^="https://www.google.com/search?"]:hover {
    background: #0e61ea !important;
    text-decoration: none !important;
}


/* =============
   === Misc. ===
   ============= */

.zcm__sep--h:before { top: 0.2em; }
    
.zcm__sep--h+.zcm__item { padding-left: 0.85em; }
    
.dropdown__switch { margin-top: 10.5px; }

.dropdown__button::after { margin-top: -5px; }

.about-profiles, .module__link--two-line { padding-bottom: 5px; }
    
}