Compare commits
48 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b292befd1d | |||
| f0834f197c | |||
| d062468f93 | |||
| b6db617017 | |||
| efc3dd5475 | |||
| d79313436d | |||
| 19c957aecc | |||
| 3816c49bbf | |||
| f64d0cc6dc | |||
| 71f246c8a3 | |||
| 970ee33771 | |||
| 2c41c2ffab | |||
| 185651b10d | |||
| dfa22d21b6 | |||
| 598f4fce65 | |||
| 144c3dff8f | |||
| 8b09523510 | |||
| f70c452f26 | |||
| 3911572b29 | |||
| 7fe1b87f82 | |||
| d85097774f | |||
| 9a5759ae86 | |||
| 7023cc0f97 | |||
| feae5a0214 | |||
| 81b7466224 | |||
| 97b379eb08 | |||
| 1f55a9d9a2 | |||
| f4d5b3b97e | |||
| 09ef1d2a14 | |||
| d1800ffd98 | |||
| 664e3a5910 | |||
| cdf49bd516 | |||
| a90b691505 | |||
| eca05948c3 | |||
| cef5ad279c | |||
| fc97ab99fe | |||
| 9e96704c24 | |||
| 536b58feba | |||
| 35a4642042 | |||
| 3777405f0b | |||
| e18b9e89eb | |||
| 9381e56c47 | |||
| 9a8a9d4ad3 | |||
| 91f3cc3ebb | |||
| 7d53fe08ce | |||
| 328b8cbab5 | |||
| ef2925a663 | |||
| 41ee5a5358 |
+5
-8
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "next-gen",
|
"name": "Horizon Theme",
|
||||||
"authors": "Design Team",
|
"authors": "Design Team",
|
||||||
"about_url": "TODO: Put your theme's public repo or Meta topic URL here",
|
"about_url": "TODO: Put your theme's public repo or Meta topic URL here",
|
||||||
"license_url": "TODO: Put your theme's LICENSE URL here",
|
"license_url": "TODO: Put your theme's LICENSE URL here",
|
||||||
@@ -9,27 +9,24 @@
|
|||||||
"maximum_discourse_version": null,
|
"maximum_discourse_version": null,
|
||||||
"assets": {},
|
"assets": {},
|
||||||
"modifiers": {
|
"modifiers": {
|
||||||
"svg_icons": ["fa-fire"]
|
"svg_icons": ["fire"]
|
||||||
},
|
},
|
||||||
"components": [
|
"components": [
|
||||||
"https://github.com/discourse/discourse-sidebar-new-topic-button.git",
|
"https://github.com/discourse/discourse-sidebar-new-topic-button.git",
|
||||||
"https://github.com/discourse/discourse-search-banner.git",
|
|
||||||
"https://github.com/discourse/discourse-full-width-component.git"
|
"https://github.com/discourse/discourse-full-width-component.git"
|
||||||
],
|
],
|
||||||
"color_schemes": {
|
"color_schemes": {
|
||||||
"next_gen": {
|
"Horizon": {
|
||||||
"primary": "1A1A1A",
|
"primary": "1A1A1A",
|
||||||
"primary-low": "ebecf9",
|
|
||||||
"primary-500": "8591ad",
|
|
||||||
"secondary": "ffffff",
|
"secondary": "ffffff",
|
||||||
"header_background": "f5f8ff",
|
"header_background": "f5f8ff",
|
||||||
"tertiary": "313270",
|
"tertiary": "595bca",
|
||||||
"tertiary-low": "d8d9f3",
|
"tertiary-low": "d8d9f3",
|
||||||
"tertiary-50": "f5f8ff",
|
"tertiary-50": "f5f8ff",
|
||||||
"selected": "d8d9f3",
|
"selected": "d8d9f3",
|
||||||
"hover": "ebebf9"
|
"hover": "ebebf9"
|
||||||
},
|
},
|
||||||
"next_gen_dark": {
|
"Horizon Dark": {
|
||||||
"primary": "F1EFF9",
|
"primary": "F1EFF9",
|
||||||
"secondary": "1e1a36",
|
"secondary": "1e1a36",
|
||||||
"header_background": "00091d",
|
"header_background": "00091d",
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
$accent-color: dark-light-choose(#3c41c3, #6e4bbc);
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--accent-color: #{$accent-color};
|
|
||||||
--background-color: #f5f8ff;
|
|
||||||
}
|
|
||||||
+7
-3
@@ -1,13 +1,17 @@
|
|||||||
|
@import "box-view";
|
||||||
@import "buttons";
|
@import "buttons";
|
||||||
|
@import "chat";
|
||||||
|
@import "color-choice";
|
||||||
|
@import "color-exploration";
|
||||||
|
@import "composer";
|
||||||
@import "header";
|
@import "header";
|
||||||
@import "hiddenstuff";
|
@import "hiddenstuff";
|
||||||
@import "main";
|
@import "main";
|
||||||
|
@import "misc";
|
||||||
|
@import "mobile-stuff";
|
||||||
@import "nav-pills";
|
@import "nav-pills";
|
||||||
@import "search-banner";
|
@import "search-banner";
|
||||||
@import "sidebar";
|
@import "sidebar";
|
||||||
@import "topic";
|
@import "topic";
|
||||||
@import "topic-cards";
|
@import "topic-cards";
|
||||||
@import "variables";
|
@import "variables";
|
||||||
@import "box-view";
|
|
||||||
@import "chat";
|
|
||||||
@import "misc";
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import { apiInitializer } from "discourse/lib/api";
|
import { apiInitializer } from "discourse/lib/api";
|
||||||
|
import CustomColorHtmlClass from "../components/custom-color-html-class";
|
||||||
import ExperimentalScreen from "../components/experimental-screen";
|
import ExperimentalScreen from "../components/experimental-screen";
|
||||||
|
|
||||||
export default apiInitializer("1.8.0", (api) => {
|
export default apiInitializer("1.8.0", (api) => {
|
||||||
api.renderInOutlet("above-main-container", ExperimentalScreen);
|
api.renderInOutlet("above-main-container", ExperimentalScreen);
|
||||||
|
api.renderInOutlet("above-main-container", CustomColorHtmlClass);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import { apiInitializer } from "discourse/lib/api";
|
||||||
|
import CustomUserPalette from "../components/custom-user-palette";
|
||||||
|
|
||||||
|
export default apiInitializer("1.8.0", (api) => {
|
||||||
|
api.renderInOutlet("sidebar-footer-actions", CustomUserPalette);
|
||||||
|
});
|
||||||
@@ -1,14 +1,9 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import avatar from "discourse/helpers/avatar";
|
import avatar from "discourse/helpers/avatar";
|
||||||
|
|
||||||
export default class TopicAuthorColumn extends Component {
|
const TopicAuthorAvatarColumn = <template>
|
||||||
constructor() {
|
<span class="topic-author-avatar">
|
||||||
super(...arguments);
|
{{avatar @topic.creator imageSize="large"}}
|
||||||
}
|
</span>
|
||||||
|
</template>;
|
||||||
|
|
||||||
<template>
|
export default TopicAuthorAvatarColumn;
|
||||||
<span class="topic-author-avatar">
|
|
||||||
{{avatar @topic.creator imageSize="large"}}
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
import Component from "@glimmer/component";
|
const TopicAuthorColumn = <template>
|
||||||
|
<span class="topic-author">@{{@topic.creator.username}}</span>
|
||||||
|
</template>;
|
||||||
|
|
||||||
export default class TopicAuthorColumn extends Component {
|
export default TopicAuthorColumn;
|
||||||
constructor() {
|
|
||||||
super(...arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<span class="topic-author">@{{@topic.creator.username}}</span>
|
|
||||||
</template>
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import { categoryLinkHTML } from "discourse/helpers/category-link";
|
import { categoryLinkHTML } from "discourse/helpers/category-link";
|
||||||
|
|
||||||
export default class TopicAuthorColumn extends Component {
|
const TopicCategoryColumn = <template>
|
||||||
constructor() {
|
{{categoryLinkHTML @topic.category}}
|
||||||
super(...arguments);
|
</template>;
|
||||||
}
|
|
||||||
|
|
||||||
<template>
|
export default TopicCategoryColumn;
|
||||||
{{categoryLinkHTML @topic.category}}
|
|
||||||
</template>
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import icon from "discourse/helpers/d-icon";
|
import icon from "discourse/helpers/d-icon";
|
||||||
|
|
||||||
export default class TopicLikesColumn extends Component {
|
const TopicLikesColumn = <template>
|
||||||
constructor() {
|
{{#if @topic.like_count}}
|
||||||
super(...arguments);
|
<span class="topic-likes">{{icon "heart"}}{{@topic.like_count}}</span>
|
||||||
}
|
{{/if}}
|
||||||
|
</template>;
|
||||||
|
|
||||||
<template>
|
export default TopicLikesColumn;
|
||||||
{{#if @topic.like_count}}
|
|
||||||
<span class="topic-likes">{{icon "heart"}}{{@topic.like_count}}</span>
|
|
||||||
{{/if}}
|
|
||||||
</template>
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import icon from "discourse/helpers/d-icon";
|
import icon from "discourse/helpers/d-icon";
|
||||||
|
import gt from "truth-helpers/helpers/gt";
|
||||||
|
|
||||||
export default class TopicRepliesColumn extends Component {
|
const TopicRepliesColumn = <template>
|
||||||
constructor() {
|
{{#if (gt @topic.posts_count 1)}}
|
||||||
super(...arguments);
|
<span class="topic-replies">{{icon "reply"}}{{@topic.posts_count}}</span>
|
||||||
}
|
{{/if}}
|
||||||
|
</template>;
|
||||||
|
|
||||||
<template>
|
export default TopicRepliesColumn;
|
||||||
{{#if @topic.posts_count}}
|
|
||||||
<span class="topic-replies">{{icon "reply"}}{{@topic.posts_count}}</span>
|
|
||||||
{{/if}}
|
|
||||||
</template>
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { action } from "@ember/object";
|
|||||||
import { service } from "@ember/service";
|
import { service } from "@ember/service";
|
||||||
import { and } from "truth-helpers";
|
import { and } from "truth-helpers";
|
||||||
import icon from "discourse/helpers/d-icon";
|
import icon from "discourse/helpers/d-icon";
|
||||||
|
import { i18n } from "discourse-i18n";
|
||||||
|
|
||||||
export default class TopicStatusColumn extends Component {
|
export default class TopicStatusColumn extends Component {
|
||||||
@service currentUser;
|
@service currentUser;
|
||||||
@@ -43,26 +44,38 @@ export default class TopicStatusColumn extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
togglePinned(e) {
|
togglePinned(event) {
|
||||||
e.preventDefault();
|
event.preventDefault();
|
||||||
this.args.topic.togglePinnedForUser();
|
this.args.topic.togglePinnedForUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
{{#if @topic.bookmarked}}
|
{{#if @topic.bookmarked}}
|
||||||
<span class={{this.statusClass}}>{{icon "bookmark"}}Bookmarked</span>
|
<span class={{this.statusClass}}>{{icon "bookmark"}}{{i18n
|
||||||
|
(themePrefix "topic_bookmarked")
|
||||||
|
}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (and @topic.closed @topic.archived)~}}
|
{{#if (and @topic.closed @topic.archived)~}}
|
||||||
<span class={{this.statusClass}}>Locked and Archived</span>
|
<span class={{this.statusClass}}>{{i18n
|
||||||
|
(themePrefix "topic_closed_and_archived")
|
||||||
|
}}</span>
|
||||||
{{else if @topic.closed}}
|
{{else if @topic.closed}}
|
||||||
<span class={{this.statusClass}}>Locked</span>
|
<span class={{this.statusClass}}>{{i18n
|
||||||
|
(themePrefix "topic_closed")
|
||||||
|
}}</span>
|
||||||
{{else if @topic.archived}}
|
{{else if @topic.archived}}
|
||||||
<span class={{this.statusClass}}>Archived</span>
|
<span class={{this.statusClass}}>{{i18n
|
||||||
|
(themePrefix "topic_archived")
|
||||||
|
}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if @topic.is_warning}}
|
{{#if @topic.is_warning}}
|
||||||
<span class={{this.statusClass}}>Warning</span>
|
<span class={{this.statusClass}}>{{i18n
|
||||||
|
(themePrefix "topic_warning")
|
||||||
|
}}</span>
|
||||||
{{else if (and @showPrivateMessageIcon @topic.isPrivateMessage)}}
|
{{else if (and @showPrivateMessageIcon @topic.isPrivateMessage)}}
|
||||||
<span class={{this.statusClass}}>Private Message</span>
|
<span class={{this.statusClass}}>{{i18n
|
||||||
|
(themePrefix "topic_personal_message")
|
||||||
|
}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if @topic.pinned}}
|
{{#if @topic.pinned}}
|
||||||
{{#if this.canAct}}
|
{{#if this.canAct}}
|
||||||
@@ -70,9 +83,11 @@ export default class TopicStatusColumn extends Component {
|
|||||||
type="button"
|
type="button"
|
||||||
{{on "click" this.togglePinned}}
|
{{on "click" this.togglePinned}}
|
||||||
class={{this.statusClass}}
|
class={{this.statusClass}}
|
||||||
>{{icon "thumbtack"}}Pinned</button>
|
>{{icon "thumbtack"}}{{i18n (themePrefix "topic_pinned")}}</button>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class={{this.statusClass}}>{{icon "thumbtack"}}Pinned</span>
|
<span class={{this.statusClass}}>{{icon "thumbtack"}}{{i18n
|
||||||
|
(themePrefix "topic_pinned")
|
||||||
|
}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{else if @topic.unpinned}}
|
{{else if @topic.unpinned}}
|
||||||
{{#if this.canAct}}
|
{{#if this.canAct}}
|
||||||
@@ -80,17 +95,21 @@ export default class TopicStatusColumn extends Component {
|
|||||||
type="button"
|
type="button"
|
||||||
{{on "click" this.togglePinned}}
|
{{on "click" this.togglePinned}}
|
||||||
class={{this.statusClass}}
|
class={{this.statusClass}}
|
||||||
>{{icon "thumbtack" class="unpinned"}}Unpinned</button>
|
>{{icon "thumbtack" class="unpinned"}}{{i18n
|
||||||
|
(themePrefix "topic_unpinned")
|
||||||
|
}}</button>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class={{this.statusClass}}>{{icon
|
<span class={{this.statusClass}}>{{icon
|
||||||
"thumbtack"
|
"thumbtack"
|
||||||
class="unpinned"
|
class="unpinned"
|
||||||
}}Unpinned</span>
|
}}{{i18n (themePrefix "topic_unpinned")}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if this.heatMap}}
|
{{#if this.heatMap}}
|
||||||
<span class="topic-status-card --hot">{{icon "fa-fire"}}Hot</span>
|
<span class="topic-status-card --hot">{{icon "fire"}}{{i18n
|
||||||
|
(themePrefix "topic_hot")
|
||||||
|
}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import Component from "@glimmer/component";
|
||||||
|
import { concat } from "@ember/helper";
|
||||||
|
import { service } from "@ember/service";
|
||||||
|
import htmlClass from "discourse/helpers/html-class";
|
||||||
|
|
||||||
|
export default class CustomColorHtmlClass extends Component {
|
||||||
|
@service customColor;
|
||||||
|
|
||||||
|
<template>
|
||||||
|
{{htmlClass (concat "custom-color-" this.customColor.color)}}
|
||||||
|
</template>
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
import icon from "discourse/helpers/d-icon";
|
||||||
|
import DMenu from "float-kit/components/d-menu";
|
||||||
|
import SitePaletteMenuItem from "./site-palette-menu-item";
|
||||||
|
|
||||||
|
const PALETTES = [
|
||||||
|
{
|
||||||
|
label: "Marigold",
|
||||||
|
name: "marigold",
|
||||||
|
color: "#d3881f",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Violet",
|
||||||
|
name: "violet",
|
||||||
|
color: "#9b15de",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Lily",
|
||||||
|
name: "lily",
|
||||||
|
color: "#CC336F",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Clover",
|
||||||
|
name: "clover",
|
||||||
|
color: "#45a06e",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Royal",
|
||||||
|
name: "royal",
|
||||||
|
color: "#4169e1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Horizon",
|
||||||
|
name: "horizon",
|
||||||
|
color: "#595bca",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const DEFAULT_PALETTE_NAME = "horizon";
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<DMenu
|
||||||
|
@identifier="user-color-palette"
|
||||||
|
@placementStrategy="fixed"
|
||||||
|
class="btn-flat user-color-palette sidebar-footer-actions-button"
|
||||||
|
@inline={{true}}
|
||||||
|
>
|
||||||
|
<:trigger>
|
||||||
|
{{icon "paintbrush"}}
|
||||||
|
</:trigger>
|
||||||
|
<:content>
|
||||||
|
<div class="color-palette-menu">
|
||||||
|
<div class="color-palette-menu__content">
|
||||||
|
{{#each PALETTES as |colorPalette|}}
|
||||||
|
<SitePaletteMenuItem @colorPalette={{colorPalette}} />
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</:content>
|
||||||
|
</DMenu>
|
||||||
|
</template>
|
||||||
@@ -2,41 +2,24 @@ import Component from "@glimmer/component";
|
|||||||
import { tracked } from "@glimmer/tracking";
|
import { tracked } from "@glimmer/tracking";
|
||||||
import { action } from "@ember/object";
|
import { action } from "@ember/object";
|
||||||
import didInsert from "@ember/render-modifiers/modifiers/did-insert";
|
import didInsert from "@ember/render-modifiers/modifiers/did-insert";
|
||||||
import { cancel, throttle } from "@ember/runloop";
|
|
||||||
import { htmlSafe } from "@ember/template";
|
import { htmlSafe } from "@ember/template";
|
||||||
import { bind } from "discourse/lib/decorators";
|
import { bind } from "discourse/lib/decorators";
|
||||||
|
|
||||||
export default class ExperimentalScreen extends Component {
|
export default class ExperimentalScreen extends Component {
|
||||||
@tracked left = 0;
|
@tracked left = 0;
|
||||||
@tracked right = 0;
|
@tracked right = 0;
|
||||||
|
resizeObserver;
|
||||||
|
|
||||||
willDestroy() {
|
willDestroy() {
|
||||||
super.willDestroy(...arguments);
|
super.willDestroy(...arguments);
|
||||||
cancel(this._throttledCalculateDistanceHandler);
|
this.resizeObserver.disconnect();
|
||||||
}
|
|
||||||
|
|
||||||
getDistance(element) {
|
|
||||||
const rect = element.getBoundingClientRect();
|
|
||||||
return rect;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@bind
|
@bind
|
||||||
calculateDistance() {
|
calculateDistance(element) {
|
||||||
this._throttledCalculateDistanceHandler = throttle(
|
const distance = element.getBoundingClientRect();
|
||||||
this,
|
this.left = distance.left;
|
||||||
this._throttledCalculateDistance,
|
this.right = distance.right;
|
||||||
50
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
_throttledCalculateDistance() {
|
|
||||||
const element = document.getElementById("main-outlet");
|
|
||||||
|
|
||||||
if (element) {
|
|
||||||
const distance = this.getDistance(element);
|
|
||||||
this.left = distance.left;
|
|
||||||
this.right = distance.right;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get distanceStyles() {
|
get distanceStyles() {
|
||||||
@@ -46,9 +29,16 @@ export default class ExperimentalScreen extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
onInsert() {
|
onInsert(element) {
|
||||||
this.calculateDistance();
|
this.calculateDistance(element);
|
||||||
window.addEventListener("resize", this.calculateDistance);
|
|
||||||
|
this.resizeObserver = new ResizeObserver((entries) => {
|
||||||
|
for (const entry of entries) {
|
||||||
|
this.calculateDistance(entry.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.resizeObserver.observe(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
import Component from "@glimmer/component";
|
||||||
|
import { fn } from "@ember/helper";
|
||||||
|
import { action } from "@ember/object";
|
||||||
|
import { service } from "@ember/service";
|
||||||
|
import { htmlSafe } from "@ember/template";
|
||||||
|
import DButton from "discourse/components/d-button";
|
||||||
|
import concatClass from "discourse/helpers/concat-class";
|
||||||
|
|
||||||
|
export default class SitePaletteMenuItem extends Component {
|
||||||
|
@service customColor;
|
||||||
|
|
||||||
|
get siteStyle() {
|
||||||
|
return `--icon-color: ${this.args.colorPalette.color}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
get activeClass() {
|
||||||
|
if (this.customColor.color === this.args.colorPalette.name) {
|
||||||
|
return "active";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@action
|
||||||
|
handleInput(colorPalette) {
|
||||||
|
this.customColor.setColor(colorPalette.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="color-palette-menu__item" data-color={{@colorPalette.name}}>
|
||||||
|
<DButton
|
||||||
|
class={{concatClass
|
||||||
|
"btn-flat color-palette-menu__item-choice"
|
||||||
|
this.activeClass
|
||||||
|
}}
|
||||||
|
style={{htmlSafe this.siteStyle}}
|
||||||
|
@icon="circle"
|
||||||
|
@translatedLabel={{@colorPalette.label}}
|
||||||
|
@action={{fn this.handleInput @colorPalette}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
import { tracked } from "@glimmer/tracking";
|
||||||
|
import { action } from "@ember/object";
|
||||||
|
import Service, { service } from "@ember/service";
|
||||||
|
import { DEFAULT_PALETTE_NAME } from "../components/custom-user-palette";
|
||||||
|
|
||||||
|
const CUSTOM_COLOR_KEY = "d-custom-color-preference";
|
||||||
|
|
||||||
|
export default class CustomColor extends Service {
|
||||||
|
@service keyValueStore;
|
||||||
|
@tracked
|
||||||
|
color = this.keyValueStore.getItem(CUSTOM_COLOR_KEY) || DEFAULT_PALETTE_NAME;
|
||||||
|
|
||||||
|
@action
|
||||||
|
setColor(color) {
|
||||||
|
this.color = color;
|
||||||
|
this.keyValueStore.setItem(CUSTOM_COLOR_KEY, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
+10
-3
@@ -1,5 +1,12 @@
|
|||||||
en:
|
en:
|
||||||
theme_metadata:
|
theme_metadata:
|
||||||
description: ""
|
description: "A simple, beautiful theme that improves the out of the box experience for Discourse sites."
|
||||||
settings:
|
topic_bookmarked: "Bookmarked"
|
||||||
example_setting: A description of a setting.
|
topic_closed_archived: "Closed and archived"
|
||||||
|
topic_closed: "Closed"
|
||||||
|
topic_archived: "Archived"
|
||||||
|
topic_warning: "Warning"
|
||||||
|
topic_personal_message: "Personal message"
|
||||||
|
topic_pinned: "Pinned"
|
||||||
|
topic_unpinned: "Unpinned"
|
||||||
|
topic_hot: "Hot"
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
#main-outlet-wrapper {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
"prettier": "2.8.8"
|
"prettier": "2.8.8"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 22",
|
"node": ">= 18",
|
||||||
"npm": "please-use-pnpm",
|
"npm": "please-use-pnpm",
|
||||||
"yarn": "please-use-pnpm",
|
"yarn": "please-use-pnpm",
|
||||||
"pnpm": "9.x"
|
"pnpm": "9.x"
|
||||||
|
|||||||
+31
-11
@@ -5,15 +5,37 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.has-full-page-chat .experimental-screen {
|
.chat-drawer-active.chat-drawer-expanded {
|
||||||
display: none;
|
.experimental-screen {
|
||||||
|
&__top-left,
|
||||||
|
&__top-right,
|
||||||
|
&__bottom-left,
|
||||||
|
&__bottom-right,
|
||||||
|
&__bottom-bar {
|
||||||
|
z-index: 199;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-full-page-chat .chat-replying-indicator-container {
|
||||||
|
margin-bottom: var(--d-border-radius-large);
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-full-page-chat .chat-selection-management {
|
||||||
|
margin-bottom: var(--d-border-radius-large);
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.experimental-screen {
|
.experimental-screen {
|
||||||
max-width: unset !important;
|
@include breakpoint(medium) {
|
||||||
.has-full-page-chat & {
|
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
max-width: unset !important;
|
||||||
@media screen and (max-width: 488px) {
|
@media screen and (max-width: 488px) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@@ -35,7 +57,7 @@
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
width: var(--d-border-radius-large);
|
width: var(--d-border-radius-large);
|
||||||
height: var(--d-border-radius-large);
|
height: var(--d-border-radius-large);
|
||||||
background-color: var(--tertiary-50);
|
background-color: var(--background-color);
|
||||||
z-index: 399;
|
z-index: 399;
|
||||||
-webkit-mask: radial-gradient(
|
-webkit-mask: radial-gradient(
|
||||||
circle at var(--d-border-radius-large) var(--d-border-radius-large),
|
circle at var(--d-border-radius-large) var(--d-border-radius-large),
|
||||||
@@ -64,18 +86,16 @@
|
|||||||
&__bottom-right {
|
&__bottom-right {
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
bottom: var(--d-border-radius-large);
|
bottom: var(--d-border-radius-large);
|
||||||
@container content-width (width > 1px) {
|
left: calc(var(--right-distance) - var(--d-border-radius-large));
|
||||||
left: calc(var(--right-distance) - var(--d-border-radius-large));
|
@media screen and (max-width: 768px) {
|
||||||
@media screen and (max-width: 768px) {
|
bottom: calc(var(--d-border-radius-large) * 2);
|
||||||
bottom: calc(var(--d-border-radius-large) * 2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&__bottom-bar {
|
&__bottom-bar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 399;
|
z-index: 399;
|
||||||
background-color: var(--tertiary-50);
|
background-color: var(--background-color);
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: var(--left-distance);
|
left: var(--left-distance);
|
||||||
height: var(--d-border-radius-large);
|
height: var(--d-border-radius-large);
|
||||||
|
|||||||
+42
-92
@@ -6,79 +6,57 @@
|
|||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-default,
|
|
||||||
.btn-primary,
|
|
||||||
.btn-danger,
|
|
||||||
.select-kit .select-kit-header {
|
|
||||||
padding: var(--spacing-block-s) var(--spacing-inline-m);
|
|
||||||
// font-size: var(--font-up-1-rem);
|
|
||||||
// border-radius: var(--d-button-border-radius);
|
|
||||||
|
|
||||||
&.no-text {
|
|
||||||
padding-inline: 0.665rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-new-topic-button__wrapper .topic-drafts-menu-trigger.btn.no-text {
|
.sidebar-new-topic-button__wrapper .topic-drafts-menu-trigger.btn.no-text {
|
||||||
background: var(--accent-color);
|
background: var(--accent-color);
|
||||||
&:hover {
|
&:hover,
|
||||||
background: radial-gradient(
|
&:focus-visible {
|
||||||
90% 110% at 50% 50%,
|
background: oklch(from var(--accent-color) 40% c h) !important;
|
||||||
rgba(255, 255, 255, 0.3) 0%,
|
box-shadow: none;
|
||||||
rgba(255, 255, 255, 0) 100%
|
|
||||||
),
|
|
||||||
var(--accent-color);
|
|
||||||
}
|
}
|
||||||
svg {
|
.d-icon {
|
||||||
color: var(--secondary);
|
color: var(--accent-text-color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-default,
|
.discourse-no-touch .dropdown-menu__item .btn {
|
||||||
.select-kit .select-kit-header {
|
background: transparent;
|
||||||
border: 1px solid var(--accent-color);
|
}
|
||||||
//id like to use rgba of the accent colour but how to derive that?
|
|
||||||
// box-shadow: 0px 0px 8px 2px oklch(from (var(--accent-color)) calc(l * 2) calc(c * 0.125) h);
|
|
||||||
background: var(--secondary);
|
|
||||||
|
|
||||||
|
.discourse-no-touch .btn-default.sidebar-new-topic-button,
|
||||||
|
.discourse-no-touch .btn-default,
|
||||||
|
.discourse-no-touch .select-kit .select-kit-header.btn-default {
|
||||||
|
background: var(--primary-100);
|
||||||
.d-icon {
|
.d-icon {
|
||||||
color: var(--accent-color);
|
color: var(--accent-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
.discourse-no-touch & {
|
border-color: transparent;
|
||||||
border: 1px solid transparent;
|
box-shadow: 0px 0px 8px 1px var(--button-box-shadow);
|
||||||
box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.1);
|
background: var(--d-content-background);
|
||||||
background: var(--secondary);
|
color: var(--accent-color);
|
||||||
|
.d-icon {
|
||||||
color: var(--accent-color);
|
color: var(--accent-color);
|
||||||
.d-icon {
|
|
||||||
color: var(--accent-color);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
.discourse-no-touch & {
|
background: var(--d-content-background);
|
||||||
background: var(--secondary);
|
color: var(--accent-color);
|
||||||
|
box-shadow: 0px 0px 0px 3px var(--button-box-shadow);
|
||||||
|
.d-icon {
|
||||||
color: var(--accent-color);
|
color: var(--accent-color);
|
||||||
box-shadow: 0px 0px 0px 2px var(--secondary),
|
}
|
||||||
0px 0px 0px 4px var(--accent-color);
|
}
|
||||||
.d-icon {
|
&:active:not(:hover, :focus) {
|
||||||
color: var(--accent-color);
|
color: var(--primary);
|
||||||
}
|
background: var(--tertiary-300);
|
||||||
}
|
background-image: none;
|
||||||
}
|
.d-icon {
|
||||||
}
|
color: var(--tertiary-high);
|
||||||
//not shared with select-kit
|
|
||||||
.btn-default {
|
|
||||||
&:active {
|
|
||||||
.discourse-no-touch & {
|
|
||||||
color: var(--secondary);
|
|
||||||
background: oklch(from var(--accent-color) 30% c h) !important;
|
|
||||||
.d-icon {
|
|
||||||
color: var(--secondary);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-primary,
|
.btn-primary,
|
||||||
#create-topic.btn {
|
#create-topic.btn {
|
||||||
background-color: var(--accent-color);
|
background-color: var(--accent-color);
|
||||||
@@ -88,50 +66,22 @@
|
|||||||
}
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
.discourse-no-touch & {
|
.discourse-no-touch & {
|
||||||
background: radial-gradient(
|
background: oklch(from var(--accent-color) 40% c h) !important;
|
||||||
90% 110% at 50% 50%,
|
box-shadow: 0px 0px 6px 1px var(--button-box-shadow);
|
||||||
rgba(255, 255, 255, 0.3) 0%,
|
color: var(--accent-text-color);
|
||||||
rgba(255, 255, 255, 0) 100%
|
.d-icon {
|
||||||
),
|
color: var(--accent-text-color);
|
||||||
var(--accent-color);
|
}
|
||||||
box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
.discourse-no-touch & {
|
.discourse-no-touch & {
|
||||||
background: radial-gradient(
|
background: oklch(from var(--accent-color) 40% c h) !important;
|
||||||
90% 110% at 50% 50%,
|
box-shadow: 0px 0px 0px 4px var(--button-box-shadow);
|
||||||
rgba(255, 255, 255, 0.3) 0%,
|
color: var(--accent-text-color);
|
||||||
rgba(255, 255, 255, 0) 100%
|
|
||||||
),
|
|
||||||
var(--accent-color);
|
|
||||||
box-shadow: 0px 0px 0px 2px var(--secondary),
|
|
||||||
0px 0px 0px 4px var(--accent-color);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&:active {
|
&:active {
|
||||||
.discourse-no-touch & {
|
background: oklch(from var(--accent-color) 30% c h) !important;
|
||||||
// background: radial-gradient(
|
|
||||||
// 65% 95% at 50% 50%,
|
|
||||||
// rgba(0, 0, 0, 0.4) 0%,
|
|
||||||
// rgba(0, 0, 0, 0) 100%
|
|
||||||
// ),
|
|
||||||
// var(--accent-color) !important;
|
|
||||||
background: oklch(from var(--accent-color) 30% c h) !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-controls {
|
|
||||||
svg.d-icon {
|
|
||||||
color: inherit !important; //something we should honestly implement in core imo, when do we ever NOT want the same colour for icon and text?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//undoing the outline for select-kit, since Im using a custom visual cue
|
|
||||||
.select-kit.single-select.is-expanded .select-kit-header:not(.btn),
|
|
||||||
.select-kit.single-select .select-kit-header:not(.btn):focus,
|
|
||||||
.select-kit.single-select .select-kit-header:not(.btn):active {
|
|
||||||
outline: transparent;
|
|
||||||
border-color: var(--accent-color);
|
|
||||||
}
|
|
||||||
|
|||||||
+42
-5
@@ -1,16 +1,53 @@
|
|||||||
.full-page-chat.full-page-chat-sidebar-enabled {
|
.full-page-chat.full-page-chat-sidebar-enabled {
|
||||||
border-top-left-radius: var(--d-border-radius-large);
|
|
||||||
box-shadow: 0px 0px 1px 2px var(--tertiary-100),
|
|
||||||
0px 0px 24px 4px var(--tertiary-100);
|
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c-navbar-container {
|
.c-navbar-container {
|
||||||
border-top-left-radius: var(--d-border-radius-large);
|
padding: 0 1.5em;
|
||||||
padding: 0 1.5rem;
|
|
||||||
background-color: var(--d-content-background);
|
background-color: var(--d-content-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
body.has-full-page-chat {
|
body.has-full-page-chat {
|
||||||
background-color: var(--background-color);
|
background-color: var(--background-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.chat-drawer-container {
|
||||||
|
.is-expanded & {
|
||||||
|
box-shadow: 0px 0px 0px 2px var(--d-chat-border);
|
||||||
|
}
|
||||||
|
.chat-drawer.is-expanded & {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-drawer-outlet-container {
|
||||||
|
z-index: z("composer", "content");
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-drawer .channels-list-container .chat-channel-row {
|
||||||
|
margin-bottom: var(--spacing-block-xs);
|
||||||
|
font-size: var(--font-up-1);
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
border-bottom: none;
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--d-sidebar-active-background);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.channel-title {
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: var(--font-down-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-composer__wrapper {
|
||||||
|
background: var(--d-content-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-message-actions .more-buttons .btn-icon-text {
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--d-selected);
|
||||||
|
box-shadow: none;
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
.color-palette-menu {
|
||||||
|
&__item .btn-icon-text.btn-flat {
|
||||||
|
background-color: var(--d-content-background);
|
||||||
|
width: 100%;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
&__item .btn-icon-text.btn-flat:hover {
|
||||||
|
background-color: var(--d-selected);
|
||||||
|
box-shadow: none;
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
&__item .btn-icon-text.btn-flat:hover svg {
|
||||||
|
color: var(--icon-color);
|
||||||
|
}
|
||||||
|
&__item .btn-icon-text.btn-flat svg {
|
||||||
|
color: var(--icon-color);
|
||||||
|
}
|
||||||
|
&__item-choice.active.btn-icon-text.btn-flat {
|
||||||
|
background-color: var(--d-selected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-color-palette-content .fk-d-menu__inner-content {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.custom-color-horizon {
|
||||||
|
--accent-base-color: #595bca;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.custom-color-marigold {
|
||||||
|
--accent-base-color: #d3881f;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.custom-color-violet {
|
||||||
|
--accent-base-color: #9b15de;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.custom-color-lily {
|
||||||
|
--accent-base-color: #cc338c;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.custom-color-clover {
|
||||||
|
--accent-base-color: #45a06e;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.custom-color-royal {
|
||||||
|
--accent-base-color: #4169e1;
|
||||||
|
}
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
:root {
|
||||||
|
--accent-base-color: #595bca;
|
||||||
|
--accent-color: light-dark(
|
||||||
|
var(--accent-base-color),
|
||||||
|
oklch(from var(--accent-base-color) calc(l * 0.95) c h)
|
||||||
|
);
|
||||||
|
// --background-color: light-dark(#f5f8ff, #101112);
|
||||||
|
--background-color: light-dark(
|
||||||
|
oklch(from var(--accent-color) 98% calc(c * 0.25) h),
|
||||||
|
oklch(from var(--accent-color) 10% 0.025 h)
|
||||||
|
);
|
||||||
|
--header_primary-low-mid: light-dark(
|
||||||
|
oklch(from var(--background-color) calc(l * 0.75) calc(c * 2) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 1) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--header_primary-medium: light-dark(
|
||||||
|
oklch(from var(--background-color) calc(l * 0.55) calc(c * 2) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.35) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--d-content-background: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 2) 0 h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.375) 0 h)
|
||||||
|
);
|
||||||
|
--primary-100: light-dark(#f2f2f2, #333333);
|
||||||
|
--primary-300: light-dark(#d1d1d1, #838383);
|
||||||
|
--primary-low: light-dark(#e9e9e9, #313131);
|
||||||
|
--primary-high: light-dark(#646464, #a6a6a6);
|
||||||
|
--primary-very-high: light-dark(#434343, #c7c7c7);
|
||||||
|
--d-hover: oklch(from var(--d-selected) l c h / 0.75);
|
||||||
|
--tertiary: var(--accent-color);
|
||||||
|
--tertiary-medium: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.25) calc(c * 0.25) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.75) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--tertiary-very-low: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.75) calc(c * 0.25) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.5) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--tertiary-med-or-tertiary: var(--accent-color);
|
||||||
|
--tertiary-low: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.6) calc(c * 0.25) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.6) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--tertiary-300: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.5) calc(c * 2) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.65) calc(c * 0.65) h)
|
||||||
|
);
|
||||||
|
--tertiary-high: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1) c h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 1) c h)
|
||||||
|
);
|
||||||
|
--d-sidebar-highlight-hover-icon: var(--d-sidebar-link-color);
|
||||||
|
--search-color: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.65) calc(c * 0.65) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.5) calc(c * 2) h)
|
||||||
|
);
|
||||||
|
--search-banner-text-color: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.65) calc(c * 0.65) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.85) calc(c * 2) h)
|
||||||
|
);
|
||||||
|
--topic-card-shadow: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.85) calc(c * 0.5) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.2) calc(c * 0.01) h / 0.25)
|
||||||
|
);
|
||||||
|
--button-box-shadow: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.5) calc(c * 0.35) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.75) calc(c * 0.5) h)
|
||||||
|
);
|
||||||
|
--d-selected: light-dark(
|
||||||
|
oklch(from var(--background-color) calc(l * 0.9375) calc(c * 2) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.7) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--d-sidebar-highlight-hover-background: var(--d-selected);
|
||||||
|
--d-sidebar-border-color: light-dark(
|
||||||
|
oklch(from var(--background-color) calc(l * 0.9) calc(c * 1) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.7) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--d-chat-border: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.25) calc(c * 0.25) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.25) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--accent-text-color: light-dark(#ffffff, #212121);
|
||||||
|
--d-nav-color--active: var(--accent-color);
|
||||||
|
--d-sidebar-background: var(--background-color);
|
||||||
|
--d-sidebar-footer-fade: rgba(var(--tertiary-50-rgb), 1);
|
||||||
|
--d-sidebar-link-color: light-dark(
|
||||||
|
oklch(from var(--accent-color) calc(l * 0.8) calc(c * 0.25) h),
|
||||||
|
oklch(from var(--accent-color) calc(l * 1.5) calc(c * 0.25) h)
|
||||||
|
);
|
||||||
|
--d-sidebar-link-icon-color: var(--d-sidebar-link-color);
|
||||||
|
--d-sidebar-header-color: var(--d-sidebar-link-color);
|
||||||
|
--d-sidebar-header-icon-color: var(--d-sidebar-link-color);
|
||||||
|
--d-sidebar-suffix-color: light-dark(
|
||||||
|
oklch(from var(--accent-base-color) calc(l * 1) calc(c * 0.9) h),
|
||||||
|
oklch(from var(--accent-base-color) calc(l * 1) calc(c * 0.9) h)
|
||||||
|
);
|
||||||
|
--d-sidebar-active-suffix-color: var(--d-sidebar-suffix-color);
|
||||||
|
--link-color: light-dark(
|
||||||
|
var(--accent-base-color),
|
||||||
|
oklch(from var(--accent-base-color) calc(l * 0.95) c h)
|
||||||
|
);
|
||||||
|
--link-color-hover: light-dark(
|
||||||
|
var(--accent-base-color),
|
||||||
|
oklch(from var(--accent-base-color) calc(l * 1.5) calc(c * 2.25) h)
|
||||||
|
);
|
||||||
|
--d-sidebar-prefix-background: var(--d-selected);
|
||||||
|
--d-sidebar-active-prefix-background: light-dark(
|
||||||
|
oklch(from var(--d-selected) calc(l * 0.85) c h),
|
||||||
|
oklch(from var(--d-selected) calc(l * 0.7) c h)
|
||||||
|
);
|
||||||
|
--d-sidebar-highlight-prefix-background: light-dark(
|
||||||
|
oklch(from var(--d-selected) calc(l * 0.85) c h),
|
||||||
|
oklch(from var(--d-selected) calc(l * 0.7) c h)
|
||||||
|
);
|
||||||
|
--d-sidebar-highlight-suffix-color: var(--d-sidebar-active-suffix-color);
|
||||||
|
--d-sidebar-highlight-color: var(--primary);
|
||||||
|
--d-sidebar-highlight-background: var(--d-selected);
|
||||||
|
--d-sidebar-section-link-icon-size: 1em;
|
||||||
|
--d-input-bg-color: var(--d-content-background);
|
||||||
|
--tertiary-hover: var(--accent-color);
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#reply-control
|
||||||
|
.select-kit.dropdown-select-box.composer-actions
|
||||||
|
.select-kit-header {
|
||||||
|
border: 1px solid var(--tertiary-700);
|
||||||
|
background: var(--secondary);
|
||||||
|
&:hover {
|
||||||
|
.d-icon {
|
||||||
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.d-editor-button-bar {
|
||||||
|
.btn:hover,
|
||||||
|
.toolbar-popup-menu-options.is-expanded {
|
||||||
|
.discourse-no-touch & {
|
||||||
|
background: var(--tertiary-very-low);
|
||||||
|
color: var(--accent-color);
|
||||||
|
|
||||||
|
.d-icon {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
//to have parity with regular select-kit styling used elsewhere
|
||||||
|
.select-kit-row {
|
||||||
|
.d-icon {
|
||||||
|
color: var(--primary-high);
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
.d-icon {
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toolbar-popup-menu-options.is-expanded {
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
+179
-1
@@ -1,7 +1,9 @@
|
|||||||
.d-header {
|
.d-header {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
background: var(--background-color);
|
background: var(--background-color);
|
||||||
padding-bottom: 1.5em;
|
@include breakpoint(extra-large, $rule: min-width) {
|
||||||
|
padding-bottom: 1em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.has-full-page-chat .d-header {
|
.has-full-page-chat .d-header {
|
||||||
@@ -28,3 +30,179 @@
|
|||||||
.user-menu.revamped .tabs-list .btn.active {
|
.user-menu.revamped .tabs-list .btn.active {
|
||||||
background: var(--d-hover);
|
background: var(--d-hover);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.discourse-no-touch .d-header-icons .icon:hover,
|
||||||
|
.discourse-no-touch .d-header-icons .icon:focus,
|
||||||
|
.header-sidebar-toggle button:focus:hover,
|
||||||
|
.discourse-no-touch .header-sidebar-toggle button:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.discourse-no-touch .d-header-icons .icon:hover > .d-icon,
|
||||||
|
.drop-down-mode .d-header-icons .active .icon > .d-icon,
|
||||||
|
.drop-down-mode
|
||||||
|
.d-header-icons
|
||||||
|
.header-color-scheme-toggle
|
||||||
|
.-expanded
|
||||||
|
> .d-icon {
|
||||||
|
color: var(--header_primary-medium);
|
||||||
|
}
|
||||||
|
|
||||||
|
.discourse-no-touch .interface-color-selector-content {
|
||||||
|
border: none;
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
.btn {
|
||||||
|
border: none;
|
||||||
|
&:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.drop-down-mode .d-header-icons .active .icon,
|
||||||
|
.drop-down-mode .d-header-icons .header-color-scheme-toggle .-expanded {
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drop-down-mode .d-header-icons .active .icon,
|
||||||
|
.drop-down-mode .d-header-icons .header-color-scheme-toggle .-expanded {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-notification {
|
||||||
|
color: var(--accent-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
.user-menu .quick-access-panel li,
|
||||||
|
.user-notifications-list li,
|
||||||
|
.user-menu .quick-access-panel li.do-not-disturb,
|
||||||
|
.menu-panel .panel-body-bottom .btn,
|
||||||
|
.menu-panel .panel-body-bottom .btn:hover {
|
||||||
|
background-color: var(--d-content-background);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
body.login-page,
|
||||||
|
body.signup-page,
|
||||||
|
body.invite-page,
|
||||||
|
body.password-reset-page,
|
||||||
|
body.activate-account-page {
|
||||||
|
.d-header {
|
||||||
|
background: var(--background-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// attempt to center the title
|
||||||
|
// by mirroring the body grid
|
||||||
|
|
||||||
|
.has-sidebar-page {
|
||||||
|
.d-header > .wrap {
|
||||||
|
.contents {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--d-sidebar-width) minmax(0, 1fr);
|
||||||
|
grid-template-rows: auto;
|
||||||
|
gap: 0; // gap will ruin the alignment
|
||||||
|
|
||||||
|
.header-sidebar-toggle,
|
||||||
|
.home-logo-wrapper-outlet {
|
||||||
|
grid-column: 1;
|
||||||
|
grid-row: 1;
|
||||||
|
justify-self: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-logo-wrapper-outlet {
|
||||||
|
margin-left: 3.5em;
|
||||||
|
margin-right: 0;
|
||||||
|
max-width: 13em; // crosses into column 2 beyond this
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extra-info-wrapper {
|
||||||
|
grid-column: 2;
|
||||||
|
grid-row: 1;
|
||||||
|
|
||||||
|
justify-self: center;
|
||||||
|
|
||||||
|
max-width: 59em; // width of topic + timeline
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
@media screen and (max-width: 1350px) {
|
||||||
|
justify-self: start;
|
||||||
|
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-left: 3em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel {
|
||||||
|
grid-column: 2;
|
||||||
|
grid-row: 1;
|
||||||
|
justify-self: end;
|
||||||
|
|
||||||
|
padding-right: 1em;
|
||||||
|
|
||||||
|
// the title and panel don't exist on the same plane
|
||||||
|
// so we let the panel overlap the title
|
||||||
|
// and fade it out so it looks intentional
|
||||||
|
|
||||||
|
background: var(--background-color);
|
||||||
|
|
||||||
|
@media screen and (max-width: 850px) {
|
||||||
|
background: var(--secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "";
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
rgba(255, 255, 255, 0) 0%,
|
||||||
|
var(--background-color) 80%
|
||||||
|
);
|
||||||
|
@media screen and (max-width: 850px) {
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
rgba(255, 255, 255, 0) 0%,
|
||||||
|
var(--secondary) 80%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
top: -0.5em;
|
||||||
|
bottom: 0;
|
||||||
|
height: 4em;
|
||||||
|
width: 3em;
|
||||||
|
left: -3em;
|
||||||
|
position: absolute;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// these will probably cause problems when used
|
||||||
|
.before-header-panel-outlet,
|
||||||
|
.after-header-panel-outlet {
|
||||||
|
grid-row: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.before-header-panel-outlet {
|
||||||
|
&:has(.search-banner) {
|
||||||
|
grid-column: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1280px) {
|
||||||
|
.floating-search-input {
|
||||||
|
margin-left: 2.75em;
|
||||||
|
padding-right: 15em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1000px) {
|
||||||
|
&.search-header--visible
|
||||||
|
.floating-search-input
|
||||||
|
.search-banner-inner.wrap
|
||||||
|
.search-menu {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
.sidebar__panel-switch-button,
|
.sidebar__panel-switch-button,
|
||||||
.sidebar-section[data-section-name="messages"],
|
|
||||||
.list-controls #create-topic,
|
.list-controls #create-topic,
|
||||||
.notifications-button-footer .reason .text,
|
.notifications-button-footer .reason .text,
|
||||||
.pinned-button .reason .text,
|
.pinned-button .reason .text,
|
||||||
.more-topics__browse-more {
|
.more-topics__browse-more,
|
||||||
|
//footer-message might cause issues, not sure what possible stuff can be in there, but the general idea is to hide it bcs having an ugly H3 (what?) CTA at the bottom is just… ugly imo
|
||||||
|
.footer-message {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
+75
-40
@@ -1,36 +1,62 @@
|
|||||||
html:not(:has(.has-full-page-chat)) {
|
|
||||||
background-color: var(--background-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--main-grid-gap: 2em;
|
--main-grid-gap: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
body:not(.has-full-page-chat) {
|
html:not(:has(.has-full-page-chat)) {
|
||||||
background-color: var(--background-color);
|
background-color: var(--background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
}
|
||||||
|
#main-outlet-wrapper {
|
||||||
|
gap: var(--main-grid-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.has-sidebar-page.has-full-page-chat #main-outlet-wrapper {
|
||||||
|
grid-column-gap: var(--main-grid-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.has-full-page-chat:not(.has-sidebar-page) {
|
||||||
|
.d-header {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
}
|
||||||
#main-outlet-wrapper {
|
#main-outlet-wrapper {
|
||||||
// margin-top: 1.5rem;
|
gap: var(--main-grid-gap);
|
||||||
@media screen and (max-width: 485px) {
|
@include breakpoint(medium) {
|
||||||
|
gap: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body.has-sidebar-page #main-outlet-wrapper {
|
||||||
|
grid-template-columns: var(--d-sidebar-width) minmax(0, 1fr) 0px;
|
||||||
|
#main-outlet {
|
||||||
|
max-width: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.has-sidebar-page) #main-outlet-wrapper {
|
||||||
|
@include breakpoint(medium, $rule: min-width) {
|
||||||
|
grid-template-columns: 0px minmax(0, 1fr) 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.has-full-page-chat) {
|
||||||
|
@include breakpoint(extra-large, $rule: min-width) {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
}
|
||||||
|
#main-outlet-wrapper {
|
||||||
|
@include breakpoint(medium) {
|
||||||
--main-grid-gap: 0;
|
--main-grid-gap: 0;
|
||||||
}
|
}
|
||||||
gap: var(--main-grid-gap);
|
@include breakpoint(tablet, $rule: min-width) {
|
||||||
// height: calc(100vh - var(--header-offset) - 4rem);
|
gap: var(--main-grid-gap);
|
||||||
// box-sizing: border-box;
|
}
|
||||||
// > * {
|
|
||||||
// height: inherit;
|
|
||||||
// box-sizing: border-box;
|
|
||||||
// }
|
|
||||||
#main-outlet {
|
#main-outlet {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-bottom: var(--spacing-block-l);
|
padding-bottom: var(--spacing-block-l);
|
||||||
// height: inherit;
|
max-width: unset;
|
||||||
// overflow: scroll;
|
|
||||||
// &:has(.list-controls) {
|
|
||||||
// padding-top: 0;
|
|
||||||
// }
|
|
||||||
// &:has(#topic-title) {
|
|
||||||
// padding-top: 0;
|
|
||||||
// }
|
|
||||||
//thanks to random container elements on the page, I can't do a direct child selector here because it targets all the randomness, so I see no other option than MANUALLY adding every possible element that can appear in the main outlet YAY
|
//thanks to random container elements on the page, I can't do a direct child selector here because it targets all the randomness, so I see no other option than MANUALLY adding every possible element that can appear in the main outlet YAY
|
||||||
.list-controls,
|
.list-controls,
|
||||||
.list-container,
|
.list-container,
|
||||||
@@ -38,34 +64,45 @@ body:not(.has-full-page-chat) {
|
|||||||
.container.posts,
|
.container.posts,
|
||||||
#topic-footer-buttons,
|
#topic-footer-buttons,
|
||||||
.more-topics__container,
|
.more-topics__container,
|
||||||
.search-banner,
|
.welcome-banner,
|
||||||
.container.viewing-self,
|
.container .user-main,
|
||||||
.reviewable,
|
.reviewable,
|
||||||
.admin-content,
|
.admin-content,
|
||||||
.discourse-post-event-upcoming-events,
|
.discourse-post-event-upcoming-events,
|
||||||
.container.groups-index,
|
.container.groups-index,
|
||||||
.body-page,
|
.body-page,
|
||||||
.container.badges {
|
.container.badges,
|
||||||
max-width: 1000px;
|
.topic-above-footer-buttons-outlet .presence-users,
|
||||||
margin-inline: auto;
|
.global-notice {
|
||||||
padding-inline: 1.5em;
|
@include breakpoint(medium, $rule: min-width) {
|
||||||
@media screen and (max-width: 425px) {
|
max-width: 1000px;
|
||||||
padding-inline: 0.5em;
|
margin-inline: auto;
|
||||||
|
padding-inline: var(--spacing-inline-l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
border-radius: var(--d-border-radius-large);
|
border-radius: var(--d-border-radius-large);
|
||||||
border-radius: 1.25rem;
|
@include breakpoint(medium) {
|
||||||
// box-shadow: 0px 0px 1px 2px #e2e8f8, 0px 0px 24px 4px #e2e8f8;
|
border-radius: 0px;
|
||||||
|
}
|
||||||
background-color: var(--d-content-background);
|
background-color: var(--d-content-background);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// .global-notice {
|
|
||||||
// margin-top: var(--spacing-block-m);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-container {
|
#list-area {
|
||||||
|
.show-more.has-topics {
|
||||||
|
@include breakpoint(medium, $rule: min-width) {
|
||||||
|
width: auto;
|
||||||
|
right: 50%;
|
||||||
|
transform: translateX(50%);
|
||||||
|
|
||||||
|
.alert {
|
||||||
|
padding: var(--spacing-block-sm) var(--spacing-inline-m);
|
||||||
|
border-radius: var(--d-border-radius-large);
|
||||||
|
font-size: var(--font-down-1-rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.topic-list-body {
|
.topic-list-body {
|
||||||
padding-top: var(--spacing-block-m);
|
padding-top: var(--spacing-block-m);
|
||||||
}
|
}
|
||||||
@@ -76,9 +113,7 @@ aside.onebox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.d-editor-preview-wrapper {
|
.d-editor-preview-wrapper {
|
||||||
box-shadow: 0px 0px 1px 2px var(--tertiary-50),
|
border-radius: var(--d-border-radius);
|
||||||
0px 0px 24px 4px var(--tertiary-50);
|
|
||||||
border-radius: var(--d-border-radius-large);
|
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
background-color: var(--d-content-background);
|
background-color: var(--d-content-background);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,3 +43,58 @@
|
|||||||
.d-editor-button-bar {
|
.d-editor-button-bar {
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.open .grippie {
|
||||||
|
background-color: var(--accent-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.d-editor-textarea-wrapper.in-focus,
|
||||||
|
input[type="text"]:focus,
|
||||||
|
input[type="password"]:focus,
|
||||||
|
input[type="datetime"]:focus,
|
||||||
|
input[type="datetime-local"]:focus,
|
||||||
|
input[type="date"]:focus,
|
||||||
|
input[type="month"]:focus,
|
||||||
|
input[type="time"]:focus,
|
||||||
|
input[type="week"]:focus,
|
||||||
|
input[type="number"]:focus,
|
||||||
|
input[type="email"]:focus,
|
||||||
|
input[type="url"]:focus,
|
||||||
|
input[type="search"]:focus,
|
||||||
|
input[type="tel"]:focus,
|
||||||
|
input[type="color"]:focus,
|
||||||
|
.select-kit.multi-select.is-expanded .multi-select-header,
|
||||||
|
.select-kit.multi-select .multi-select-header:focus {
|
||||||
|
border-color: var(--accent-color);
|
||||||
|
outline: 2px solid var(--accent-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#reply-control {
|
||||||
|
background-color: var(--background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fk-d-menu__trigger.topic-list-layout-trigger {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-container .search-header,
|
||||||
|
.search-container .search-bar,
|
||||||
|
.search-container .search-filters,
|
||||||
|
.search-container .search-filters .search-advanced-filters {
|
||||||
|
background-color: var(--d-content-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-main .about .details {
|
||||||
|
padding: 1em 1em 0;
|
||||||
|
border-bottom: 0px;
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
background-color: var(--primary-50);
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert.alert-info {
|
||||||
|
background: var(--tertiary-very-low);
|
||||||
|
}
|
||||||
|
|
||||||
|
.discourse-reactions-list .reactions {
|
||||||
|
gap: 0.15em;
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,209 @@
|
|||||||
|
//temp sepeate file to avoid merge hell… to be distributed later
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
html,
|
||||||
|
.d-header {
|
||||||
|
background-color: var(--secondary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#main-outlet-wrapper {
|
||||||
|
*[class*="navigation-"] & {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#main-outlet {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding-top: var(--spacing-block-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-controls {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding-inline: var(
|
||||||
|
--spacing-inline-m
|
||||||
|
) !important; //override will be fixed when the whole chat page shenanigans is resolved
|
||||||
|
padding-block: var(--spacing-block-s);
|
||||||
|
border-bottom: 1px solid var(--primary-200);
|
||||||
|
}
|
||||||
|
.navigation-container {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
gap: var(--spacing-inline-s);
|
||||||
|
//dont know why we even hide this crucial navigation on mobile
|
||||||
|
.category-breadcrumb.hidden,
|
||||||
|
.category-breadcrumb {
|
||||||
|
display: flex !important;
|
||||||
|
column-gap: var(--spacing-inline-s);
|
||||||
|
row-gap: var(--spacing-block-xs);
|
||||||
|
flex-basis: 100%;
|
||||||
|
.select-kit-header {
|
||||||
|
padding-block: var(--spacing-block-s);
|
||||||
|
padding-inline: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-default {
|
||||||
|
border: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
.d-icon {
|
||||||
|
font-size: var(--font-up-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.fk-d-button-tooltip {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: var(
|
||||||
|
--spacing-inline-xs
|
||||||
|
); //pure visual correction for horitzontal alignment
|
||||||
|
&:has(#create-topic) {
|
||||||
|
order: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#navigation-bar,
|
||||||
|
.navigation-controls,
|
||||||
|
.category-breadcrumb {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.navigation-controls {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
gap: var(--spacing-inline-s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-container {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding-inline: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-list-body {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
border-top: 0;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-list-item {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 0;
|
||||||
|
//to be moved to topic card segment for general use
|
||||||
|
// .navigation-category & {
|
||||||
|
// .badge-category__wrapper {
|
||||||
|
// display: none;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#topic-title {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding-inline: var(--spacing-inline-m) !important;
|
||||||
|
|
||||||
|
.title-wrapper {
|
||||||
|
gap: var(--spacing-block-s);
|
||||||
|
}
|
||||||
|
.topic-category {
|
||||||
|
order: -1;
|
||||||
|
}
|
||||||
|
//make mixin of this
|
||||||
|
.badge-category__wrapper {
|
||||||
|
font-size: var(--font-down-2-rem);
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
padding: var(--spacing-inline-xs) var(--spacing-inline-s);
|
||||||
|
background-color: light-dark(
|
||||||
|
oklch(from var(--category-badge-color) 97% calc(c * 0.3) h),
|
||||||
|
oklch(from var(--category-badge-color) 45% calc(c * 0.5) h)
|
||||||
|
);
|
||||||
|
border: 1px solid
|
||||||
|
light-dark(
|
||||||
|
oklch(from var(--category-badge-color) 97% calc(c * 0.3) h),
|
||||||
|
oklch(from var(--category-badge-color) 45% calc(c * 0.5) h)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-category__name {
|
||||||
|
color: light-dark(
|
||||||
|
oklch(from var(--category-badge-color) 20% calc(c * 1) h),
|
||||||
|
oklch(from var(--category-badge-color) 100% calc(c * 0.9) h)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
.discourse-tag {
|
||||||
|
font-size: var(--font-down-2-rem);
|
||||||
|
padding: var(--spacing-inline-xs) var(--spacing-inline-s);
|
||||||
|
gap: var(--spacing-inline-xs);
|
||||||
|
border-radius: var(--d-border-radius-large);
|
||||||
|
border: 1px solid var(--primary-low-mid);
|
||||||
|
background: var(--secondary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.container.posts {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding-inline: var(--spacing-inline-xs) !important;
|
||||||
|
|
||||||
|
.main-avatar .avatar {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-body {
|
||||||
|
.topic-meta-data {
|
||||||
|
.username {
|
||||||
|
font-size: var(--font-0-rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.contents {
|
||||||
|
padding-top: var(--spacing-block-m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.small-action {
|
||||||
|
&-desc {
|
||||||
|
padding: var(--spacing-block-xs) 0;
|
||||||
|
}
|
||||||
|
//for core eventually, better way imo
|
||||||
|
.topic-avatar {
|
||||||
|
padding-top: 0;
|
||||||
|
align-items: center;
|
||||||
|
.d-icon {
|
||||||
|
font-size: var(--font-up-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#topic-footer-buttons {
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
padding-inline: var(--spacing-inline-xs) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//should be changed in core, should not be a primary btn
|
||||||
|
//changing this into straight buttons to match the progress one, which doesnt work well with rounded corners
|
||||||
|
#topic-progress-wrapper {
|
||||||
|
.progress-back-container {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-bottom: var(--spacing-block-xs);
|
||||||
|
.btn-primary.progress-back {
|
||||||
|
border-radius: 0;
|
||||||
|
background: var(--secondary);
|
||||||
|
border: 1px solid var(--tertiary-low);
|
||||||
|
color: var(--accent-color);
|
||||||
|
padding: var(--spacing-inline-s) var(--spacing-inline-m);
|
||||||
|
.d-icon {
|
||||||
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.topic-admin-menu-trigger {
|
||||||
|
border-radius: 0;
|
||||||
|
background: var(--secondary);
|
||||||
|
border: 1px solid var(--tertiary-low);
|
||||||
|
}
|
||||||
|
}
|
||||||
+27
-13
@@ -12,13 +12,25 @@
|
|||||||
order: 1;
|
order: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.combo-box .combo-box-header,
|
.combo-box .combo-box-header {
|
||||||
.discourse-post-event .discourse-post-event-widget {
|
|
||||||
// needs more specificy than just in the button file
|
// needs more specificy than just in the button file
|
||||||
background-color: var(--secondary);
|
background-color: var(--secondary);
|
||||||
border: 1px solid var(--accent-color);
|
|
||||||
border-radius: var(--d-border-radius-large);
|
border-radius: var(--d-border-radius-large);
|
||||||
|
border: 1px solid var(--primary-300);
|
||||||
// font-size: var(--font-up-1-rem);
|
// font-size: var(--font-up-1-rem);
|
||||||
|
&:hover {
|
||||||
|
border: 1px solid var(--accent-color);
|
||||||
|
}
|
||||||
|
&:focus-visible {
|
||||||
|
.discourse-no-touch & {
|
||||||
|
background: var(--secondary);
|
||||||
|
color: var(--accent-color);
|
||||||
|
box-shadow: 0px 0px 0px 3px var(--button-box-shadow);
|
||||||
|
.d-icon {
|
||||||
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.select-kit.combo-box.category-drop.has-selection
|
.select-kit.combo-box.category-drop.has-selection
|
||||||
.category-drop-header:hover {
|
.category-drop-header:hover {
|
||||||
@@ -33,15 +45,17 @@
|
|||||||
|
|
||||||
.nav-pills > li > a:hover,
|
.nav-pills > li > a:hover,
|
||||||
.nav-pills > li button:hover {
|
.nav-pills > li button:hover {
|
||||||
background: transparent;
|
.discourse-no-touch & {
|
||||||
color: var(--accent-color);
|
background: transparent;
|
||||||
&::after {
|
color: var(--accent-color);
|
||||||
content: "";
|
&::after {
|
||||||
position: absolute;
|
content: "";
|
||||||
left: 0;
|
position: absolute;
|
||||||
bottom: 0;
|
left: 0;
|
||||||
right: 0;
|
bottom: 0;
|
||||||
height: var(--d-nav-underline-height);
|
right: 0;
|
||||||
background: var(--accent-color);
|
height: var(--d-nav-underline-height);
|
||||||
|
background: var(--accent-color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,19 +7,17 @@
|
|||||||
border-bottom: 1px solid var(--primary-300);
|
border-bottom: 1px solid var(--primary-300);
|
||||||
padding: 1.5em 0 2.5em;
|
padding: 1.5em 0 2.5em;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
--search-color: var(--tertiary-medium);
|
@media screen and (max-width: 768px) {
|
||||||
@media screen and (max-width: 900px) {
|
padding: 1em;
|
||||||
padding-bottom: 1em;
|
|
||||||
}
|
}
|
||||||
h1 {
|
h1 {
|
||||||
grid-column: 1/2;
|
grid-column: 1/2;
|
||||||
grid-row: 1/-1;
|
grid-row: 1/-1;
|
||||||
padding: 0 1em;
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: var(--tertiary);
|
color: var(--search-banner-text-color);
|
||||||
@media screen and (max-width: 1028px) {
|
@media screen and (max-width: 1028px) {
|
||||||
font-size: var(--font-up-4);
|
font-size: var(--font-up-4);
|
||||||
grid-column: 1/-1;
|
grid-column: 1/-1;
|
||||||
|
|||||||
+34
-14
@@ -1,4 +1,14 @@
|
|||||||
.sidebar-wrapper {
|
.sidebar-wrapper,
|
||||||
|
.sidebar-hamburger-dropdown {
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
background: var(--secondary);
|
||||||
|
.sidebar-footer-wrapper {
|
||||||
|
background: var(--secondary);
|
||||||
|
.sidebar-footer-container::before {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.has-full-page-chat &,
|
.has-full-page-chat &,
|
||||||
.has-full-page-chat & .sidebar-footer-wrapper {
|
.has-full-page-chat & .sidebar-footer-wrapper {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
@@ -11,27 +21,39 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.sidebar-section-link {
|
.sidebar-section-link {
|
||||||
font-size: var(--font-up-1);
|
|
||||||
// dont want to change fonts here just yet as font-size can be changed as a user pref.
|
|
||||||
// – charlie: sure but I want it to be bigger by default
|
|
||||||
// letter-spacing: 0.5px;
|
|
||||||
border-radius: 10px; // visually somewhat consistent with border on main outlet (?)
|
|
||||||
transition: none;
|
transition: none;
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
|
}
|
||||||
|
.dropdown-menu__item .sidebar-section-link {
|
||||||
|
border-radius: 0px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.sidebar-section-wrapper {
|
.sidebar-section-wrapper {
|
||||||
padding-block: 0.45em;
|
@include breakpoint(extra-large, $rule: min-width) {
|
||||||
|
padding-block: 0.45em;
|
||||||
|
}
|
||||||
|
@include breakpoint(mobile-extra-large) {
|
||||||
|
.hamburger-panel .revamped & {
|
||||||
|
margin-bottom: var(--spacing-block-m);
|
||||||
|
}
|
||||||
|
}
|
||||||
.sidebar-section-header {
|
.sidebar-section-header {
|
||||||
font-size: var(--font-down-1);
|
font-size: var(--font-down-2);
|
||||||
}
|
}
|
||||||
.sidebar-section-content {
|
.sidebar-section-content {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: var(--spacing-block-xs);
|
@include breakpoint(extra-large, $rule: min-width) {
|
||||||
|
gap: var(--spacing-block-xs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar-wrapper .sidebar-sections {
|
||||||
|
--scrollbarThumbBg: var(--d-selected);
|
||||||
|
}
|
||||||
|
|
||||||
.sidebar-section-link-wrapper .sidebar-section-link:focus,
|
.sidebar-section-link-wrapper .sidebar-section-link:focus,
|
||||||
.sidebar-section-link-wrapper .sidebar-section-link:hover {
|
.sidebar-section-link-wrapper .sidebar-section-link:hover {
|
||||||
.d-icon {
|
.d-icon {
|
||||||
@@ -40,11 +62,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-new-topic-button__wrapper {
|
.sidebar-new-topic-button__wrapper {
|
||||||
margin-bottom: 1.5rem;
|
margin: 0 var(--spacing-inline-m) var(--spacing-block-l);
|
||||||
@media screen and (max-width: 1000px) {
|
.sidebar-new-topic-button .d-icon {
|
||||||
.sidebar-new-topic-button .d-icon {
|
display: none;
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+55
-14
@@ -17,6 +17,9 @@ $extra-large: 1280px;
|
|||||||
|
|
||||||
.topic-list > .topic-list-body > .topic-list-item.last-visit {
|
.topic-list > .topic-list-body > .topic-list-item.last-visit {
|
||||||
border-bottom: 1px solid var(--primary-300);
|
border-bottom: 1px solid var(--primary-300);
|
||||||
|
&:hover {
|
||||||
|
border-color: var(--accent-color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.topic-list-body {
|
.topic-list-body {
|
||||||
@@ -24,11 +27,43 @@ $extra-large: 1280px;
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 1em;
|
gap: 1em;
|
||||||
@media screen and (max-width: $extra-small) {
|
@include breakpoint(medium) {
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bulk-select-enabled .topic-list-item {
|
||||||
|
grid-template-areas:
|
||||||
|
"bulk-select avatar author status status . activity"
|
||||||
|
". topic-title topic-title topic-title likes-replies likes-replies category";
|
||||||
|
.bulk-select {
|
||||||
|
grid-area: bulk-select;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
align-self: center;
|
||||||
|
justify-self: center;
|
||||||
|
label {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width: $medium) {
|
||||||
|
grid-template-columns: 44px min-content min-content auto min-content min-content min-content;
|
||||||
|
grid-template-rows: 22px minmax(22px, auto);
|
||||||
|
grid-template-areas:
|
||||||
|
"bulk-select avatar author status status . activity"
|
||||||
|
". topic-title topic-title topic-title . . likes-replies"
|
||||||
|
". topic-title topic-title topic-title . . category";
|
||||||
|
}
|
||||||
|
@media screen and (max-width: $small) {
|
||||||
|
grid-template-columns: 25px auto repeat(6, 1fr);
|
||||||
|
grid-template-rows: auto auto auto;
|
||||||
|
grid-template-areas:
|
||||||
|
"bulk-select category-status category-status . . . . activity"
|
||||||
|
"topic-title topic-title topic-title topic-title topic-title topic-title topic-title topic-title"
|
||||||
|
"avatar author . . . . . likes-replies";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
body.user-messages-page .topic-list-item {
|
body.user-messages-page .topic-list-item {
|
||||||
.topic-category-status-data {
|
.topic-category-status-data {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -65,7 +100,6 @@ body.user-messages-page .topic-list-item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.topic-list-item {
|
.topic-list-item {
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
padding: 0.75em 1rem;
|
padding: 0.75em 1rem;
|
||||||
border: 1px solid var(--primary-300);
|
border: 1px solid var(--primary-300);
|
||||||
@@ -75,6 +109,9 @@ body.user-messages-page .topic-list-item {
|
|||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
"avatar author status status . . activity"
|
"avatar author status status . . activity"
|
||||||
". topic-title topic-title topic-title likes-replies likes-replies category";
|
". topic-title topic-title topic-title likes-replies likes-replies category";
|
||||||
|
grid-column-gap: 12px;
|
||||||
|
grid-row-gap: 8px;
|
||||||
|
border-radius: var(--d-border-radius);
|
||||||
&.excerpt-expanded {
|
&.excerpt-expanded {
|
||||||
grid-template-columns: 44px repeat(6, 1fr) auto;
|
grid-template-columns: 44px repeat(6, 1fr) auto;
|
||||||
grid-template-rows: 22px auto auto 30px;
|
grid-template-rows: 22px auto auto 30px;
|
||||||
@@ -102,9 +139,6 @@ body.user-messages-page .topic-list-item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
grid-column-gap: 12px;
|
|
||||||
grid-row-gap: 8px;
|
|
||||||
border-radius: var(--d-border-radius);
|
|
||||||
@media screen and (max-width: $medium) {
|
@media screen and (max-width: $medium) {
|
||||||
grid-template-columns: 44px min-content min-content auto min-content min-content min-content;
|
grid-template-columns: 44px min-content min-content auto min-content min-content min-content;
|
||||||
grid-template-rows: 22px minmax(22px, auto);
|
grid-template-rows: 22px minmax(22px, auto);
|
||||||
@@ -121,19 +155,11 @@ body.user-messages-page .topic-list-item {
|
|||||||
"topic-title topic-title topic-title topic-title topic-title topic-title topic-title topic-title"
|
"topic-title topic-title topic-title topic-title topic-title topic-title topic-title topic-title"
|
||||||
"avatar author . . . . . likes-replies";
|
"avatar author . . . . . likes-replies";
|
||||||
}
|
}
|
||||||
@media screen and (max-width: $extra-small) {
|
@include breakpoint(medium) {
|
||||||
border: none;
|
border: none;
|
||||||
border-bottom: 1px solid var(--primary-200);
|
border-bottom: 1px solid var(--primary-200);
|
||||||
}
|
}
|
||||||
|
|
||||||
background: var(--d-content-background);
|
|
||||||
box-shadow: 0px 0px 26px 1px
|
|
||||||
light-dark(hsl(224 61% 96% / 1), hsl(224 61% 96% / 0.1));
|
|
||||||
&:hover {
|
|
||||||
border: 1px solid var(--accent-color);
|
|
||||||
background: var(--d-content-background);
|
|
||||||
}
|
|
||||||
|
|
||||||
// display contents
|
// display contents
|
||||||
td.main-link,
|
td.main-link,
|
||||||
td.posters,
|
td.posters,
|
||||||
@@ -332,3 +358,18 @@ body.user-messages-page .topic-list-item {
|
|||||||
.topic-list-header {
|
.topic-list-header {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.topic-list-item {
|
||||||
|
background: var(--d-content-background);
|
||||||
|
box-shadow: 0px 0px 12px 1px var(--topic-card-shadow);
|
||||||
|
&:hover {
|
||||||
|
.discourse-no-touch & {
|
||||||
|
border-color: var(--accent-color);
|
||||||
|
background: var(--d-content-background);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.selected {
|
||||||
|
box-shadow: 0px 0px 0px 2px var(--accent-color),
|
||||||
|
0px 0px 12px 1px var(--topic-card-shadow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
+35
-12
@@ -2,6 +2,7 @@
|
|||||||
.contents {
|
.contents {
|
||||||
font-size: var(--font-up-1);
|
font-size: var(--font-up-1);
|
||||||
line-height: 1.25;
|
line-height: 1.25;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10,6 +11,7 @@
|
|||||||
top: calc(
|
top: calc(
|
||||||
var(--header-offset, 60px) + 53px + calc(var(--spacing-block-l) * 2)
|
var(--header-offset, 60px) + 53px + calc(var(--spacing-block-l) * 2)
|
||||||
);
|
);
|
||||||
|
z-index: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
.timeline-container .topic-timeline {
|
.timeline-container .topic-timeline {
|
||||||
@@ -23,7 +25,7 @@
|
|||||||
border-radius: 0.75em;
|
border-radius: 0.75em;
|
||||||
padding-left: 0.5em;
|
padding-left: 0.5em;
|
||||||
margin-left: calc(-0.5em - 2.5px);
|
margin-left: calc(-0.5em - 2.5px);
|
||||||
background: var(--secondary);
|
background: var(--d-content-background);
|
||||||
height: 40px !important; // height is coming from element style have no other choice
|
height: 40px !important; // height is coming from element style have no other choice
|
||||||
}
|
}
|
||||||
.timelime-scroller-content {
|
.timelime-scroller-content {
|
||||||
@@ -46,22 +48,28 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#topic-title {
|
|
||||||
z-index: z("composer", "content") - 1;
|
|
||||||
padding: var(--spacing-block-l) var(--spacing-inline-xl);
|
|
||||||
position: sticky;
|
|
||||||
margin-bottom: 0;
|
|
||||||
top: var(--header-offset);
|
|
||||||
background: var(--d-content-background);
|
|
||||||
border-radius: var(--d-border-radius-large);
|
|
||||||
}
|
|
||||||
|
|
||||||
.container.posts,
|
.container.posts,
|
||||||
.more-topics__container,
|
|
||||||
#topic-footer-buttons {
|
#topic-footer-buttons {
|
||||||
padding: 0 24px;
|
padding: 0 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.container.posts {
|
||||||
|
grid-template-columns: auto 150px;
|
||||||
|
@media screen and (max-width: 924px) {
|
||||||
|
grid-template-columns: auto auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-container .topic-timeline .timeline-ago {
|
||||||
|
max-width: unset;
|
||||||
|
overflow: unset;
|
||||||
|
text-overflow: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-container .topic-timeline .timeline-scroller-content {
|
||||||
|
overflow: unset;
|
||||||
|
}
|
||||||
|
|
||||||
.more-topics__container
|
.more-topics__container
|
||||||
.more-topics__list
|
.more-topics__list
|
||||||
.topic-list-body
|
.topic-list-body
|
||||||
@@ -78,3 +86,18 @@
|
|||||||
margin-block: unset;
|
margin-block: unset;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.timeline-container.timeline-fullscreen
|
||||||
|
.topic-timeline
|
||||||
|
.timeline-scrollarea
|
||||||
|
.timeline-scroller
|
||||||
|
.timeline-handle {
|
||||||
|
float: none;
|
||||||
|
width: 5px;
|
||||||
|
position: relative;
|
||||||
|
right: -4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.post-controls .actions button {
|
||||||
|
font-size: var(--font-0);
|
||||||
|
}
|
||||||
|
|||||||
+1
-11
@@ -1,18 +1,8 @@
|
|||||||
:root {
|
:root {
|
||||||
color-scheme: light dark;
|
--d-max-width: 1000px;
|
||||||
--d-border-radius-large: 20px;
|
--d-border-radius-large: 20px;
|
||||||
--d-border-radius: 8px;
|
--d-border-radius: 8px;
|
||||||
--d-input-border-radius: 6px;
|
--d-input-border-radius: 6px;
|
||||||
--accent-text-color: var(--secondary);
|
|
||||||
--d-content-background: var(--secondary);
|
|
||||||
--d-nav-color--active: var(--accent-color);
|
|
||||||
--d-sidebar-background: var(--tertiary-50);
|
|
||||||
--d-sidebar-footer-fade: rgba(var(--tertiary-50-rgb), 1);
|
|
||||||
--d-sidebar-link-color: var(--primary);
|
|
||||||
--d-sidebar-highlight-color: var(--primary);
|
|
||||||
--d-sidebar-highlight-background: var(--d-selected);
|
|
||||||
--d-sidebar-section-link-icon-size: 1em;
|
|
||||||
--d-input-bg-color: var(--d-content-background);
|
|
||||||
// --d-sidebar-row-height: 2.8em;
|
// --d-sidebar-row-height: 2.8em;
|
||||||
//the idea is: block spacing can grow with font-size, but inline spacing should not to maintain horizontal (text) alignment
|
//the idea is: block spacing can grow with font-size, but inline spacing should not to maintain horizontal (text) alignment
|
||||||
--spacing-block-xs: 0.25em;
|
--spacing-block-xs: 0.25em;
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
example_setting:
|
|
||||||
default: true
|
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
describe "Horizon theme | High level", type: :system do
|
||||||
|
let!(:theme) { upload_theme }
|
||||||
|
fab!(:current_user) { Fabricate(:user) }
|
||||||
|
fab!(:tag_1) { Fabricate(:tag, name: "wow-cool") }
|
||||||
|
fab!(:tag_2) { Fabricate(:tag, name: "another-tag") }
|
||||||
|
fab!(:category)
|
||||||
|
fab!(:topic_1) { Fabricate(:topic_with_op, category: category, tags: [tag_1, tag_2]) }
|
||||||
|
let(:topic_list) { PageObjects::Components::TopicList.new }
|
||||||
|
let(:topic_page) { PageObjects::Pages::Topic.new }
|
||||||
|
let(:sidebar) { PageObjects::Components::NavigationMenu::Sidebar.new }
|
||||||
|
|
||||||
|
def run_all_high_level_tests
|
||||||
|
expect(page).to have_css(".experimental-screen")
|
||||||
|
|
||||||
|
expect(sidebar).to have_categories_section
|
||||||
|
expect(sidebar).to have_section_link(category.name)
|
||||||
|
|
||||||
|
expect(topic_list).to have_topic(topic_1)
|
||||||
|
|
||||||
|
# Ensure the topic list columns are in the correct order via 'topic-list-columns' valueTransformer
|
||||||
|
#
|
||||||
|
# NOTE(martin): Maybe there is a better way to do this in a qunit test instead.
|
||||||
|
topic_item = find(topic_list.topic_list_item_class(topic_1))
|
||||||
|
expect(topic_item.all("td").map { |el| el["class"] }).to eq(
|
||||||
|
[
|
||||||
|
"main-link clearfix topic-list-data",
|
||||||
|
"activity num topic-list-data age",
|
||||||
|
"topic-author-data",
|
||||||
|
"topic-category-status-data",
|
||||||
|
"topic-author-avatar-data",
|
||||||
|
"topic-likes-replies-data",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Can see a topic in the list and navigate to it successfully
|
||||||
|
topic_list.visit_topic(topic_1)
|
||||||
|
expect(topic_page).to have_topic_title(topic_1.title)
|
||||||
|
|
||||||
|
# Can change site colors from the sidebar palette, which are remembered across page reloads
|
||||||
|
palette_menu =
|
||||||
|
PageObjects::Components::DMenu.new(find(".sidebar-footer-actions .user-color-palette"))
|
||||||
|
palette_menu.expand
|
||||||
|
find(".color-palette-menu__content .color-palette-menu__item[data-color='marigold']").click
|
||||||
|
expect(page).to have_css(".custom-color-marigold")
|
||||||
|
page.refresh
|
||||||
|
expect(page).to have_css(".custom-color-marigold")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "works for anon" do
|
||||||
|
visit "/"
|
||||||
|
run_all_high_level_tests
|
||||||
|
end
|
||||||
|
|
||||||
|
context "for signed in users" do
|
||||||
|
before { sign_in(current_user) }
|
||||||
|
|
||||||
|
it "works" do
|
||||||
|
visit "/"
|
||||||
|
run_all_high_level_tests
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user