From 8953f57d887c060c3b58f83c38d2010d27a45ef3 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:32:24 +0100 Subject: [feature] User-selectable preset CSS themes for accounts (#2777) * [feature] User-selectable preset themes * docs, more theme stuff * lint, tests * fix css name * correct some little issues * add another theme * fix poll background * okay last theme i swear * make retrieval of apimodel themes more conventional * preallocate stylesheet slices --- internal/gtsmodel/account.go | 14 ++++++++++++++ internal/gtsmodel/accountsettings.go | 1 + 2 files changed, 15 insertions(+) (limited to 'internal/gtsmodel') diff --git a/internal/gtsmodel/account.go b/internal/gtsmodel/account.go index 2ac107e56..3bbcb37e3 100644 --- a/internal/gtsmodel/account.go +++ b/internal/gtsmodel/account.go @@ -220,3 +220,17 @@ type Relationship struct { Endorsed bool // Are you featuring this user on your profile? Note string // Your note on this account. } + +// Theme represents a user-selected +// CSS theme for an account. +type Theme struct { + // User-facing title of this theme. + Title string + + // User-facing description of this theme. + Description string + + // FileName of this theme in the themes + // directory (eg., `light-blurple.css`). + FileName string +} diff --git a/internal/gtsmodel/accountsettings.go b/internal/gtsmodel/accountsettings.go index cb5411050..218767023 100644 --- a/internal/gtsmodel/accountsettings.go +++ b/internal/gtsmodel/accountsettings.go @@ -29,6 +29,7 @@ type AccountSettings struct { Sensitive *bool `bun:",nullzero,notnull,default:false"` // Set posts from this account to sensitive by default? Language string `bun:",nullzero,notnull,default:'en'"` // What language does this account post in? StatusContentType string `bun:",nullzero"` // What is the default format for statuses posted by this account (only for local accounts). + Theme string `bun:",nullzero"` // Preset CSS theme filename selected by this Account (empty string if nothing set). CustomCSS string `bun:",nullzero"` // Custom CSS that should be displayed for this Account's profile and statuses. EnableRSS *bool `bun:",nullzero,notnull,default:false"` // enable RSS feed subscription for this account's public posts at [URL]/feed HideCollections *bool `bun:",nullzero,notnull,default:false"` // Hide this account's followers/following collections. -- cgit v1.2.3