Coffee Theme for Resource.Dopus

Easier on my eyes. Less eye strain.

Stylus theme.

/* ==UserStyle==
@name           resource.dopus.com — Coffee Palette (clean)
@namespace      github.com/openstyles/stylus
@version        2.0.0
@description    Coffee-themed recolor for resource.dopus.com (latte base, mocha accents)
@author         pt + cleanup
==/UserStyle== */

@-moz-document domain("resource.dopus.com") {


/* =========================
   PALETTE / TOKENS (edit me)
   ========================= */
:root{
  /* Core */
  --primary:            #2e1c18;  /* main text (espresso) */
  --secondary:          #b49578;  /* page bg (latte) */
  --tertiary:           #c69a72;  /* links/buttons (caramel) */
  --tertiary-hover:     #b58661;  /* hover caramel */
  --quaternary:         #8c6f56;  /* mocha accent */

  /* Header */
  --header_background:  #8c6f56;  /* mocha header */
  --header_primary:     #fdf6ec;  /* cream header text */

  /* Surfaces */
  --very-low:           #cbb297;  /* light panel */
  --low:                #a48366;  /* borders/lines */
  --hover:              #967359;  /* row hover */

  /* Status / highlight */
  --highlight-bg:       #e8d0a9;

  /* Code */
  --code-bg:            #6d4c41;  /* block bg (mocha) */
  --code-fg:            #ffcc80;  /* text (warm yellow) */
  --code-chip-bg:       #8d6e63;  /* inline code chip */
  --code-chip-fg:       #ffd966;

  /* Shadows */
  --shadow-card:        0 2px 8px rgba(46,28,24,.18);
  --shadow-header:      0 2px 4px -1px rgba(46,28,24,.25);
}

/* ==============
   BASE ELEMENTS
   ============== */
html, body{
  background: var(--secondary);
  color: var(--primary);
}
a{ color: var(--tertiary); }
a:hover{ color: var(--tertiary-hover); }

/* =========
   HEADER UI
   ========= */
.d-header{
  background: var(--header_background) !important;
  color: var(--header_primary) !important;
  box-shadow: var(--shadow-header) !important;
}
.d-header .panel{ background: transparent !important; border: 0 !important; box-shadow:none !important; }
.d-header .header-buttons .btn{ 
  background: transparent !important; border: 0 !important; box-shadow:none !important;
  color: var(--header_primary) !important; padding:.25em !important; margin:0 .15em !important;
}
.d-header .header-buttons .btn svg{ fill: var(--header_primary) !important; stroke:none !important; }
.d-header .header-buttons .btn:hover{ background: rgba(255,255,255,.08) !important; border-radius:4px !important; }

/* ======
   BANNER
   ====== */
#banner{
  background: var(--quaternary) !important;
  color: var(--header_primary) !important;
  border: 1px solid #6d4c41 !important;
  box-shadow: none !important;
}
#banner a{ color:#ffe0b2 !important; }
#banner a:hover{ color:#ffcc80 !important; }
/* If you want it gone, uncomment: */
/* #banner{ display:none !important; } */

/* =========
   LIST VIEWS
   ========= */
.topic-list .topic-list-item{ border-bottom: 1px solid var(--low) !important; }
.topic-list .topic-list-item:hover{ background: var(--hover) !important; }

/* Replies / Views / Activity — plain black, normal weight */
.topic-list td.num,
.topic-list td.views,
.topic-list td.activity,
.topic-list td.num *,
.topic-list td.views *,
.topic-list td.activity *,
.heatmap-high, .heatmap-med, .heatmap-low,
.new-posts, .unread, .muted, .badge-posts, .badge-posts .new,
.post-activity, .age {
  color:#000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow:none !important;
}

/* Optional: align and width hints */
.topic-list th,
.topic-list td.num,
.topic-list td.views,
.topic-list td.activity { text-align:right !important; }
.topic-list td.num{ width:5rem !important; }
.topic-list td.views{ width:6rem !important; }
.topic-list td.activity{ width:5rem !important; }

/* Nav pills and list controls */
.navigation-container .nav-pills li a{
  background: transparent !important; box-shadow:none !important; color: var(--primary) !important;
}
.navigation-container .nav-pills li.active a{ 
  background: transparent !important; border-bottom:3px solid var(--tertiary) !important; border-radius:0 !important;
}
.list-controls .combo-box .btn,
.list-controls .dropdown-select-box .btn{
  background: transparent !important; color: var(--primary) !important;
  border: 1px solid var(--low) !important; box-shadow:none !important;
}
.list-controls .combo-box .btn:hover{ background: var(--very-low) !important; }

/* “last visit” separator — subtle line */
.topic-list .separator{ background: transparent !important; border-bottom:1px solid var(--low) !important; box-shadow:none !important; }
.topic-list .separator span{ background: transparent !important; color: #694b3e !important; }

/* =====
   TAGS
   ===== */
.discourse-tags a.discourse-tag,
a.discourse-tag,
span.discourse-tag,
.discourse-tag.box,
.discourse-tag.simple,
.topic-list .badge,
.topic-list .badge-wrapper,
.topic-list .badge-category,
.topic-list .badge-notification{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--primary) !important;
  text-decoration: none !important;
}

/* ===========
   COMPONENTS
   =========== */
.modal-inner-container,
.menu-panel,
.dropdown-menu,
.composer, .composer-container,
.card, .panel, .boxed, .topic-map, .post-stream .topic-post{
  background: var(--secondary) !important;
  color: var(--primary) !important;
  box-shadow: var(--shadow-card) !important;
}

/* Buttons */
.btn, .btn-primary, .btn-default, .badge-notification{
  background: var(--tertiary) !important;
  color: #fff !important;
  border: 1px solid var(--tertiary-hover) !important;
  box-shadow: none !important;
}
.btn:hover, .btn-primary:hover{ background: var(--tertiary-hover) !important; }

/* Inputs */
input[type="text"], input[type="search"], textarea,
.d-editor-input, .select-kit .select-kit-header, .search-menu .search-input{
  background: #d9c2a8 !important;
  color: var(--primary) !important;
  border: 1px solid var(--low) !important;
}
input::placeholder, textarea::placeholder{ color:#6d4c41 !important; }

/* ========
   CODE UI
   ======== */
pre, pre code{
  background: var(--code-bg) !important;
  color: var(--code-fg) !important;
  border: 1px solid #5d4037 !important;
  border-radius: 6px !important;
  padding: 0.75em 1em !important;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
  line-height: 1.4 !important;
  overflow-x: auto;
}
code:not(pre code){
  background: var(--code-chip-bg) !important;
  color: var(--code-chip-fg) !important;
  border-radius: 4px !important;
  padding: .12em .35em !important;
  font-size: .95em !important;
}

/* Selection */
::selection{ background: var(--highlight-bg); color: #000; }


/* === Fixes for table headers and separators === */

/* Column headers → black, normal */
.topic-list thead th {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
}

/* Kill Discourse “muted/visited” fade */
.topic-list a.title,
.topic-list a.title.visited,
.topic-list a.title.muted,
.topic-list .topic-list-item .title {
  color: var(--primary) !important;  /* espresso dark text */
  font-weight: normal !important;
  opacity: 1 !important;
}

/* “last visit” separator → mocha line instead of red */
.topic-list .separator {
  border-bottom: 1px solid var(--low) !important;
  background: transparent !important;
  box-shadow: none !important;
}
.topic-list .separator span {
  color: var(--primary-medium) !important; /* muted espresso */
  background: transparent !important;
  font-weight: normal !important;
}
/* If you’d rather hide it entirely: */
/* .topic-list .separator { display:none !important; } */
/* === Fix embedded/quote cards === */

/* Topic link/quote previews */
.onebox,
blockquote,
.embedded-posts,
.topic-embed {
  background: var(--secondary) !important;  /* latte base */
  border: 1px solid var(--primary-low) !important;  /* soft mocha border */
  color: var(--primary) !important;
  border-radius: 6px !important;
  padding: 0.75em 1em !important;
  box-shadow: none !important;
}

/* Title inside onebox */
.onebox .onebox-title,
.onebox .source {
  color: var(--primary-very-high) !important; /* espresso */
  font-weight: 600 !important;
}

/* Description text */
.onebox .onebox-body,
.onebox .onebox-description {
  color: var(--primary) !important; /* normal espresso text */
  font-weight: normal !important;
}

/* Tiny category/tag chips inside onebox */
.onebox .badge-category,
.onebox .discourse-tag {
  background: transparent !important;
  border: none !important;
  color: var(--primary-medium) !important;
  font-weight: normal !important;
}
/* === QUOTES / QUOTED POST CARDS ===================================== */

/* Whole quote card */
.cooked .quote,        /* quoted-post widget */
blockquote {           /* Markdown > blockquotes */
  background: var(--secondary) !important;   /* latte */
  border: 1px solid var(--low) !important;   /* mocha line */
  border-radius: 8px !important;
  box-shadow: none !important;
  padding: .6rem .8rem !important;
}

/* Kill the white title strip inside Discourse quote widget */
.cooked .quote .title,
.cooked .quote .title a {
  background: transparent !important;
  color: var(--primary) !important;
  border: 0 !important;
  font-weight: 600 !important;
}

/* Inner content text */
.cooked .quote .contents {
  color: var(--primary) !important;
}

/* Quote controls (little reply/bookmark icons in the header) */
.cooked .quote .quote-controls .widget-button {
  background: transparent !important;
  color: var(--primary) !important;
  border: 1px solid var(--low) !important;
  border-radius: 6px !important;
}
.cooked .quote .quote-controls .widget-button:hover {
  background: var(--very-low) !important;
}

/* Markdown blockquote left bar (keep subtle) */
.cooked blockquote {
  border-left: 4px solid var(--low) !important;
  padding-left: .9rem !important;
}

/* === TIMELINE (right rail) ========================================== */
.timeline-container,
.timeline-controls { background: transparent !important; }

.timeline-container .timeline-handle {
  background: #e0c2a5 !important;            /* caramel handle */
  border: 1px solid var(--low) !important;
  box-shadow: none !important;
}

.timeline-container .timeline-ago,
.timeline-container .timeline-date,
.timeline-container .start-date,
.timeline-container .now-date {
  color: var(--primary) !important;          /* espresso text */
  opacity: 1 !important;
}

.timeline-container .timeline-scrollarea,
.timeline-container .timeline {
  background: transparent !important;
  border-left: 2px solid var(--low) !important;  /* subtle mocha spine */
}

/* Buttons under the timeline (back/reload/notify) */
.timeline-container .widget-button {
  background: transparent !important;
  color: var(--primary) !important;
  border: 1px solid var(--low) !important;
  border-radius: 6px !important;
}
.timeline-container .widget-button:hover {
  background: var(--very-low) !important;
}
/* === POST ACTION BUTTONS (Like / Link / Flag / Reply) ================= */

/* Default state – transparent, espresso icons/text */
.post-controls .actions .widget-button,
.post-controls .actions .widget-button .d-icon {
  background: transparent !important;
  color: var(--primary) !important;         /* espresso text */
  border: none !important;
  box-shadow: none !important;
  font-weight: normal !important;
}

/* Hover state – faint latte background + caramel accent */
.post-controls .actions .widget-button:hover {
  background: var(--primary-very-low) !important;  /* light cream */
  color: var(--tertiary) !important;              /* caramel */
  border-radius: 4px !important;
}

/* Reply button – slightly stronger (mocha bg + cream text) */
.post-controls .actions .reply {
  background: var(--tertiary) !important;   /* caramel mocha */
  color: #fffbe9 !important;                /* light cream text */
  border-radius: 6px !important;
  padding: 0.3em 0.8em !important;
  font-weight: 600 !important;
}
.post-controls .actions .reply:hover {
  background: var(--tertiary-hover) !important;
  color: #fff !important;
}
/* === Topic-map (views / likes / users strip) ======================= */
.topic-map,                          /* container */
.topic-map .map,
.topic-map .map-collapsable {
  background: transparent !important;
  border: 1px solid var(--low) !important;     /* subtle mocha line */
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
}

/* Buttons: “views”, “likes”, “users” — remove beige boxes */
.topic-map .buttons .button,
.topic-map .buttons .btn {
  background: transparent !important;
  color: var(--primary) !important;            /* espresso text */
  border: 1px solid var(--low) !important;
  box-shadow: none !important;
  border-radius: 6px !important;
}
.topic-map .buttons .button:hover,
.topic-map .buttons .btn:hover {
  background: var(--very-low) !important;      /* light latte on hover */
  color: var(--tertiary) !important;           /* caramel accent */
}

/* Avatars row – keep clean */
.topic-map .avatars { background: transparent !important; }

/* Right-side meta (“5 min”, “read”, dates) — make readable espresso */
.topic-map .topic-info,
.topic-map .secondary,
.topic-map .secondary a,
.topic-map time,
.post-info time,
.relative-date,
.discourse-local-date,
.post-date {
  color: var(--primary) !important;
  opacity: 1 !important;
}

/* Like count chip next to the heart — flatten */
.post-controls .actions .like-count,
.post-controls .actions .button-count,
.post-controls .actions .toggle-like .count {
  background: transparent !important;
  border: 1px solid var(--low) !important;
  color: var(--primary) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}
.post-controls .actions .like-count:hover,
.post-controls .actions .button-count:hover {
  background: var(--very-low) !important;
}
/* === Fix Topic-map metric chips (views / likes / links / users) === */
.topic-map .buttons .button,
.topic-map .buttons .btn,
.topic-map .buttons .btn-link,
.topic-map .buttons .btn-text {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--primary) !important;         /* espresso text */
  font-weight: normal !important;
  padding: 0 .4em !important;
  text-transform: none !important;
}

/* Hover: subtle caramel underline */
.topic-map .buttons .button:hover,
.topic-map .buttons .btn:hover,
.topic-map .buttons .btn-link:hover,
.topic-map .buttons .btn-text:hover {
  background: transparent !important;
  color: var(--tertiary) !important;        /* caramel highlight */
  text-decoration: underline !important;
}

/* === Overrides: category text === */
.category-description span,
.category-support .badge-category__name {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: Topic titles === */
a.title,
a.title:link,
a.title:visited,
a.title:active,
a.title:hover,
a.title:focus {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: Category badge names === */
.badge-category__name,
.badge-category__name a,
.badge-category__name:visited,
.badge-category__name:hover,
.badge-category__name:focus {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: Topic list column headers === */
.topic-list thead th,
.topic-list thead th.topics,
.topic-list thead th.posts,
.topic-list thead th.views,
.topic-list thead th.activity {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: numeric counters (posts/views/activity) === */
.topic-list .value,
.topic-list .value *,
.topic-list td.num,
.topic-list td.num *,
.topic-list td.views,
.topic-list td.views *,
.topic-list td.activity,
.topic-list td.activity * {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: breadcrumb + category nav links === */
.breadcrumb a,
.breadcrumb a:visited,
.breadcrumb a:hover,
.breadcrumb a:active,
.category-breadcrumb a,
.category-breadcrumb a:visited,
.category-breadcrumb a:hover,
.category-breadcrumb a:active {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: user group links === */
a.user-group.trigger-group-card,
a.user-group.trigger-group-card:visited,
a.user-group.trigger-group-card:hover,
a.user-group.trigger-group-card:active {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: poster icon + Opus Pro badge === */
.poster-icon.directoryopus-link-poster-pro,
.poster-icon.directoryopus-link-poster-pro * {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: button labels + muted text === */

/* Button labels (e.g. Reply, Like, Flag) */
.d-button-label {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}

/* Muted gray body text */
span.text,
.text {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Overrides: numbers, stat labels, usernames === */
span.number {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.topic-map__stat-label {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}

a.username,
a.username:visited,
a.username:hover,
a.username:active {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Hard override: .value counters === */
span.value,
.value,
.value * {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Hard override: Categories heading === */
#categories-only-category {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Hard override: .name spans (category names, labels) === */
span.name,
.name {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Match category dropdown header to New Topic button === */
.select-kit-header.single-select-header.combo-box-header.category-drop-header {
  background: var(--tertiary) !important;       /* same as New Topic button */
  color: #fff !important;                       /* cream text */
  border: 1px solid var(--tertiary-hover) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-weight: normal !important;
}

.select-kit-header.single-select-header.combo-box-header.category-drop-header:hover {
  background: var(--tertiary-hover) !important;
  color: #fff !important;
}
/* === Match dropdown headers to New Topic button === */
.select-kit-header.single-select-header.combo-box-header.category-drop-header,
.select-kit-header.single-select-header.combo-box-header.tag-drop-header {
  background: var(--tertiary) !important;       /* caramel background */
  color: #fff !important;                       /* cream text */
  border: 1px solid var(--tertiary-hover) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-weight: normal !important;
}

.select-kit-header.single-select-header.combo-box-header.category-drop-header:hover,
.select-kit-header.single-select-header.combo-box-header.tag-drop-header:hover {
  background: var(--tertiary-hover) !important;
  color: #fff !important;
}
/* === Hard override: usernames === */
a[data-user-card],
a.username,
a[data-user-card]:visited,
a[data-user-card]:hover,
a[data-user-card]:active {
  color: #000 !important;
  font-weight: normal !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
/* === Hard override: timegap notices (e.g. "2 months later") === */
.small-action-desc.timegap {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Hard override: generic resize button === */
button[aria-label="Resize"] {
  background: #000 !important;
  border: 1px solid #000 !important;
  width: 1.2em !important;
  height: 1.2em !important;
  border-radius: 3px !important;
}
/* === Global black text overrides via CSS variables === */
:root {
  --primary: #000 !important;
  --primary-medium: #000 !important;
  --primary-high: #000 !important;
  --primary-very-high: #000 !important;
  --header_primary: #000 !important;
  --tag-text-color: #000 !important;
  --d-post-control-text-color: #000 !important;
  --d-post-control-text-color--hover: #000 !important;
  --d-post-create-text-color: #000 !important;
  --d-post-create-text-color--hover: #000 !important;
}
/* === Hard override: plain span text like "Synchronizing labels" === */
span[data-label-id] {
  color: #000 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: normal !important;
}
/* === Global override: force all greys to pure black === */
:root {
  --gray-0: #000 !important;
  --gray-1: #000 !important;
  --gray-2: #000 !important;
  --gray-3: #000 !important;
  --gray-4: #000 !important;
  --gray-5: #000 !important;
  --gray-6: #000 !important;
  --gray-7: #000 !important;
  --gray-8: #000 !important;
  --gray-9: #000 !important;
  --gray-10: #000 !important;
}
:root {
  --primary-med-or-secondary-med: #000 !important;
}
:root {
  --d-button-flat-icon-color: #000 !important;
}
a { color: var(--tertiary) !important; } /* caramel */
a:hover { color: var(--tertiary-hover) !important; }

a {
  color: var(--code-fg) !important; /* warm yellow */
}
a:hover {
  color: #2e1c18 !important; /* brighter yellow on hover */
}

.cooked h1,
.cooked h2,
.cooked h3,
.cooked h4,
.cooked h5,
.cooked h6,
.d-editor-preview h1,
.d-editor-preview h2,
.d-editor-preview h3,
.d-editor-preview h4,
.d-editor-preview h5,
.d-editor-preview h6 {
  color: var(--heading-color) !important;
}
} /* end @-moz-document */
1 Like