tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

chat.css (6167B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 body {
      6  display: flex;
      7  flex-direction: column;
      8  inset: 0;
      9  margin: 0;
     10  position: absolute;
     11 }
     12 
     13 browser {
     14  flex: 1;
     15 }
     16 
     17 #browser-container {
     18  display: flex;
     19  flex-direction: column;
     20  flex: 1;
     21  min-height: 0;
     22 }
     23 
     24 #header {
     25  align-items: center;
     26  /* stylelint-disable-next-line stylelint-plugin-mozilla/use-design-tokens */
     27  background-color: var(--sidebar-background-color);
     28  border-bottom: 1px solid var(--border-color);
     29  display: flex;
     30  flex-direction: row;
     31  padding-inline: var(--space-large);
     32 
     33  ::part(button),
     34  select {
     35    border-radius: var(--border-radius-small);
     36    margin: 0;
     37  }
     38 
     39  moz-button:first-of-type {
     40    margin-inline-end: var(--space-xsmall);
     41  }
     42 
     43  select {
     44    --caret-anchor: left;
     45    --caret-padding: var(--space-xsmall);
     46    --end-padding: 0px;
     47    --start-padding: calc(var(--caret-padding) + var(--background-image-width) + var(--space-xsmall));
     48    background-color: var(--button-background-color-ghost);
     49    background-position-x: var(--caret-anchor) var(--caret-padding);
     50    color: var(--button-text-color-ghost);
     51    flex: 1;
     52    height: var(--button-size-icon);
     53    margin-block: var(--space-xsmall);
     54 
     55    &:hover {
     56      background-color: var(--button-background-color-ghost-hover);
     57      color: var(--button-text-color-ghost-hover);
     58    }
     59 
     60    &:dir(rtl) {
     61      --caret-anchor: right;
     62    }
     63  }
     64 }
     65 
     66 #header-close {
     67  position: relative;
     68  z-index: 1;
     69 
     70  /* stylelint-disable-next-line media-query-no-invalid */
     71  @media not -moz-pref("sidebar.revamp") {
     72    display: none;
     73  }
     74 }
     75 
     76 #message-container {
     77  padding: var(--space-xsmall);
     78 }
     79 
     80 #multi-stage-message-root {
     81  background-color: var(--background-color-overlay);
     82  display: flex;
     83  flex-direction: column;
     84  inset: 0;
     85  overflow: auto;
     86  position: absolute;
     87 
     88  .onboardingContainer {
     89    height: unset;
     90    margin: var(--space-large);
     91    margin-top: max(36px, 10vh - 31px);
     92  }
     93 
     94  .screen {
     95    border-radius: var(--border-radius-medium);
     96    min-height: unset;
     97  }
     98 
     99  .main-content {
    100    height: unset;
    101  }
    102 
    103  .main-content-inner {
    104    max-width: initial;
    105    padding: var(--space-large);
    106  }
    107 
    108  .welcome-text {
    109    margin-bottom: var(--space-xlarge);
    110    padding-inline: 0;
    111  }
    112 
    113  .content-tile {
    114    width: 100%;
    115  }
    116 
    117  .tiles-single-select-container {
    118    margin-top: 0;
    119 
    120    /* stylelint-disable-next-line media-query-no-invalid */
    121    @media not -moz-pref("browser.ml.chat.onboarding.unresponsive") {
    122      --fade-height: 20px;
    123      --fade-padding: 8px;
    124      margin-block: calc(-1 * var(--fade-padding));
    125      max-height: max(144px, 100vh - 310px);
    126      overflow-y: auto;
    127 
    128      &::after,
    129      &::before {
    130        content: "\00a0";
    131        font-size: var(--fade-height);
    132        margin-top: calc(-1 * var(--fade-height) + var(--fade-padding));
    133        pointer-events: none;
    134        position: sticky;
    135        z-index: 1;
    136      }
    137      &::after {
    138        background: linear-gradient(transparent, var(--background-color-canvas));
    139        bottom: 0;
    140      }
    141      &::before {
    142        background: linear-gradient(var(--background-color-canvas), transparent);
    143        top: 0;
    144      }
    145    }
    146  }
    147 
    148  fieldset {
    149    flex-direction: column;
    150    gap: 6px;
    151    margin: 0;
    152    padding: 0;
    153  }
    154 
    155  label {
    156    background-color: var(--background-color-box);
    157    border: 0.5px solid var(--border-color-deemphasized);
    158    border-radius: var(--border-radius-medium);
    159    flex-direction: row;
    160    margin: 1.5px; /* avoid shifting content when selected */
    161    outline-offset: var(--focus-outline-offset);
    162    padding: var(--space-small);
    163 
    164    &:hover {
    165      background-color: var(--button-background-color-hover);
    166    }
    167 
    168    &:has(.selected) {
    169      background-color: var(--background-color-canvas);
    170      border: var(--focus-outline);
    171      margin: 0; /* border switches widths */
    172    }
    173 
    174    &:focus {
    175      outline: var(--focus-outline);
    176    }
    177  }
    178 
    179  .icon {
    180    --icon-size: 30px;
    181    background-position: center;
    182    background-repeat: no-repeat;
    183    background-size: contain;
    184    border-radius: 0;
    185    height: var(--icon-size);
    186    margin-inline: var(--space-small);
    187    max-width: var(--icon-size);
    188    min-width: var(--icon-size);
    189    outline: none;
    190 
    191    &.claude {
    192      background-image: url(assets/brands/claude.svg);
    193    }
    194    &.chatgpt {
    195      background-image: url(assets/brands/chatgpt.svg);
    196      -moz-context-properties: fill;
    197      fill: var(--text-color);
    198    }
    199    &.copilot {
    200      background-image: url(assets/brands/copilot.svg);
    201    }
    202    &.gemini {
    203      background-image: url(assets/brands/gemini.svg);
    204    }
    205    &.huggingchat {
    206      background-image: url(assets/brands/huggingchat.svg);
    207    }
    208    &.lechat {
    209      background-image: url(assets/brands/lechat.svg);
    210    }
    211  }
    212 
    213  .text {
    214    flex-direction: column;
    215    font-weight: var(--font-weight-semibold);
    216    margin: 5px;
    217    text-align: start;
    218  }
    219 
    220  .link-paragraph {
    221    color: var(--text-color-deemphasized);
    222    font-size: 0.8em;
    223  }
    224 
    225  + #header,
    226  + #browser-container,
    227  + #summarize-btn-container {
    228    display: none;
    229  }
    230 }
    231 
    232 #summarize-btn-container {
    233  border-top: 1px solid var(--border-color);
    234  padding: var(--space-large);
    235  position: relative;
    236 
    237  .badge {
    238    --badge-background-color-new: var(--color-green-40);
    239 
    240    /* stylelint-disable-next-line stylelint-plugin-mozilla/use-design-tokens */
    241    background: var(--badge-background-color-new);
    242    border-radius: var(--border-radius-small);
    243    color: var(--button-text-color-primary-hover);
    244    font-size: var(--font-size-small);
    245    left: 10px;
    246    padding: var(--space-xxsmall) var(--space-small);
    247    position: absolute;
    248    text-align: center;
    249    top: 4px;
    250    z-index: 1;
    251 
    252    /* stylelint-disable-next-line media-query-no-invalid */
    253    @media not -moz-pref("browser.ml.chat.page.footerBadge") {
    254      display: none;
    255    }
    256  }
    257 
    258  /* stylelint-disable-next-line media-query-no-invalid */
    259  @media (not -moz-pref("browser.ml.chat.page")) or -moz-pref("browser.ml.chat.provider", "") {
    260    display: none;
    261  }
    262 }