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: [PATCH] [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 --- docs/admin/themes.md | 30 ++++ docs/api/swagger.yaml | 50 ++++++ docs/assets/user-settings-profile-info.png | Bin 140661 -> 104092 bytes docs/user_guide/settings.md | 18 +- internal/api/client/accounts/accounts.go | 4 + internal/api/client/accounts/accountupdate.go | 1 + internal/api/client/accounts/lists.go | 2 +- internal/api/client/accounts/statuses.go | 2 +- internal/api/client/accounts/themesget.go | 77 +++++++++ internal/api/model/account.go | 6 + internal/api/model/theme.go | 32 ++++ .../20240320114447_preset_css_themes.go | 55 ++++++ internal/gtsmodel/account.go | 14 ++ internal/gtsmodel/accountsettings.go | 1 + internal/processing/account/account.go | 2 + internal/processing/account/themes.go | 151 +++++++++++++++++ internal/processing/account/themes_test.go | 52 ++++++ internal/processing/account/update.go | 16 ++ internal/typeutils/internaltofrontend.go | 18 +- internal/web/profile.go | 42 ++++- internal/web/thread.go | 41 ++++- internal/web/web.go | 1 + mkdocs.yml | 1 + web/assets/themes/blurple-dark.css | 92 ++++++++++ web/assets/themes/blurple-light.css | 94 +++++++++++ web/assets/themes/midnight-trip.css | 159 ++++++++++++++++++ web/assets/themes/soft.css | 124 ++++++++++++++ web/assets/themes/sunset-light.css | 95 +++++++++++ web/source/settings/lib/query/user/index.ts | 7 + web/source/settings/lib/types/theme.ts | 24 +++ web/source/settings/style.css | 8 +- web/source/settings/user/profile.tsx | 39 ++++- 32 files changed, 1230 insertions(+), 28 deletions(-) create mode 100644 docs/admin/themes.md create mode 100644 internal/api/client/accounts/themesget.go create mode 100644 internal/api/model/theme.go create mode 100644 internal/db/bundb/migrations/20240320114447_preset_css_themes.go create mode 100644 internal/processing/account/themes.go create mode 100644 internal/processing/account/themes_test.go create mode 100644 web/assets/themes/blurple-dark.css create mode 100644 web/assets/themes/blurple-light.css create mode 100644 web/assets/themes/midnight-trip.css create mode 100644 web/assets/themes/soft.css create mode 100644 web/assets/themes/sunset-light.css create mode 100644 web/source/settings/lib/types/theme.ts diff --git a/docs/admin/themes.md b/docs/admin/themes.md new file mode 100644 index 000000000..a3ef11b05 --- /dev/null +++ b/docs/admin/themes.md @@ -0,0 +1,30 @@ +# Themes + +Users on your instance can select a theme for their profile from any css files present in the `web/assets/themes` directory. + +GoToSocial comes with some theme files already, but you can add more yourself by doing the following: + +1. Create a file in `web/assets/themes` called (for example) `new-theme.css`. +2. (Optional) Include the following comment at the top of your theme file to title and describe your theme: + ```css + /* + theme-title: My New Theme + theme-description: This is an example theme + */ + ``` + You can use any text you like for these fields, but bear in mind whatever you write here will appear in the settings panel to help users when selecting a theme, so keep it short and sweet. +3. Fill out your custom CSS in the rest of the file. You can use one of the existing CSS files to guide you. Also see [this page](../user_guide/custom_css.md) for some rough guidelines about how to write accessible CSS. +4. Restart your instance so that the new CSS file is picked up. + +!!! info + If you're using Docker for your deployment, you can mount theme files from the host machine into your GoToSocial `web/assets/themes` directory instead, by including entries for them in the `volumes` section of your Docker configuration. + + For example, say you've created a theme on your host machine at `~/gotosocial/my-themes/new-theme.css`, you could mount that theme into the GoToSocial Docker container in the following way: + + ```yaml + volumes: + [.... some other volume entries ...] + - "~/gotosocial/my-themes/new-theme.css:/gotosocial/web/assets/themes/new-theme.css" + ``` + + Bear in mind if you mount an entire directory to `/gotosocial/web/assets/themes` instead of mounting individual theme files, you'll override the default themes. diff --git a/docs/api/swagger.yaml b/docs/api/swagger.yaml index e962c6724..e17e3f479 100644 --- a/docs/api/swagger.yaml +++ b/docs/api/swagger.yaml @@ -294,6 +294,10 @@ definitions: description: Account has been suspended by our instance. type: boolean x-go-name: Suspended + theme: + description: Filename of user-selected CSS theme to include when rendering this account's profile or statuses. Eg., `blurple-light.css`. + type: string + x-go-name: Theme url: description: Web location of the account's profile page. example: https://example.org/@some_user @@ -2463,6 +2467,24 @@ definitions: type: object x-go-name: Tag x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model + theme: + properties: + description: + description: User-facing description of this theme. + type: string + x-go-name: Description + file_name: + description: FileName of this theme in the themes directory. + type: string + x-go-name: FileName + title: + description: User-facing title of this theme. + type: string + x-go-name: Title + title: Theme represents one user-selectable preset CSS theme. + type: object + x-go-name: Theme + x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model wellKnownResponse: description: See https://webfinger.net/ properties: @@ -3448,6 +3470,34 @@ paths: summary: Search for accounts by username and/or display name. tags: - accounts + /api/v1/accounts/themes: + get: + operationId: accountThemes + produces: + - application/json + responses: + "200": + description: Array of themes. + schema: + items: + $ref: '#/definitions/theme' + type: array + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - read:accounts + summary: See preset CSS themes available to accounts on this instance. + tags: + - accounts /api/v1/accounts/update_credentials: patch: consumes: diff --git a/docs/assets/user-settings-profile-info.png b/docs/assets/user-settings-profile-info.png index 1b9ab6aea9d812cd880b52e3fca3b624ac5dd100..fd46231434865d9485bf3aa12cce2a76db1b5c78 100644 GIT binary patch literal 104092 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 diff --git a/docs/user_guide/settings.md b/docs/user_guide/settings.md index d82b2c084..390e5c209 100644 --- a/docs/user_guide/settings.md +++ b/docs/user_guide/settings.md @@ -22,6 +22,15 @@ A preview of the image as it will appear on your profile will be shown. If you'r If you navigate to your profile and refresh the page, your new avatar / header will be shown. It might take a bit longer for the update to federate out to remote instances. +### Select Theme + +GoToSocial provides themes for you to choose from for the web view of your profile, to change your profile's appearance and vibe. + +To choose a theme, just select it from the profile settings page, and click/tap "Save profile info" at the bottom of the page. When you look at your profile in the web view (you may need to refresh the page), you'll see the new theme applied, and so will anyone else visiting your profile. + +!!! tip "Adding more themes" + Instance admins can add more themes by dropping css files into the `web/assets/themes` folder. See the [themes](../admin/themes.md) part of the admin docs for more information. + ### Basic Information #### Display Name @@ -109,9 +118,14 @@ Turning on the discoverable flag may take a week or more to propagate; your acco #### Custom CSS -If enabled on your instance by the instance administrator, [Custom CSS](./custom_css.md) allows you to theme the way your profile looks when visited through a browser. +If enabled on your instance by the instance administrator, custom CSS allows you to further customize the way your profile looks when visited through a browser. -When this setting is not enabled by the instance administrator, the text input box is read-only. +When this setting is not enabled by the instance administrator, the text input box is read-only and custom CSS will not be applied. + +See the [Custom CSS](./custom_css.md) page for some tips on writing custom CSS for your profile. + +!!! tip + Any custom CSS you add in this box will be applied *after* your selected theme, so you can pick a preset theme that you like and then make your own tweaks! ## Post Settings diff --git a/internal/api/client/accounts/accounts.go b/internal/api/client/accounts/accounts.go index c94fbfbaa..8b92bd7a5 100644 --- a/internal/api/client/accounts/accounts.go +++ b/internal/api/client/accounts/accounts.go @@ -55,6 +55,7 @@ const ( VerifyPath = BasePath + "/verify_credentials" MovePath = BasePath + "/move" AliasPath = BasePath + "/alias" + ThemesPath = BasePath + "/themes" ) type Module struct { @@ -114,4 +115,7 @@ func (m *Module) Route(attachHandler func(method string, path string, f ...gin.H // migration handlers attachHandler(http.MethodPost, AliasPath, m.AccountAliasPOSTHandler) attachHandler(http.MethodPost, MovePath, m.AccountMovePOSTHandler) + + // account themes + attachHandler(http.MethodGet, ThemesPath, m.AccountThemesGETHandler) } diff --git a/internal/api/client/accounts/accountupdate.go b/internal/api/client/accounts/accountupdate.go index 02c0fc5ac..905d11479 100644 --- a/internal/api/client/accounts/accountupdate.go +++ b/internal/api/client/accounts/accountupdate.go @@ -309,6 +309,7 @@ func parseUpdateAccountForm(c *gin.Context) (*apimodel.UpdateCredentialsRequest, form.Source.Language == nil && form.Source.StatusContentType == nil && form.FieldsAttributes == nil && + form.Theme == nil && form.CustomCSS == nil && form.EnableRSS == nil) { return nil, errors.New("empty form submitted") diff --git a/internal/api/client/accounts/lists.go b/internal/api/client/accounts/lists.go index d42fdd3f9..7bd1227a8 100644 --- a/internal/api/client/accounts/lists.go +++ b/internal/api/client/accounts/lists.go @@ -69,7 +69,7 @@ import ( // '500': // description: internal server error func (m *Module) AccountListsGETHandler(c *gin.Context) { - authed, err := oauth.Authed(c, false, false, false, false) + authed, err := oauth.Authed(c, true, true, true, true) if err != nil { apiutil.ErrorHandler(c, gtserror.NewErrorUnauthorized(err, err.Error()), m.processor.InstanceGetV1) return diff --git a/internal/api/client/accounts/statuses.go b/internal/api/client/accounts/statuses.go index 7dd4cbe37..a72a464ed 100644 --- a/internal/api/client/accounts/statuses.go +++ b/internal/api/client/accounts/statuses.go @@ -134,7 +134,7 @@ import ( // '500': // description: internal server error func (m *Module) AccountStatusesGETHandler(c *gin.Context) { - authed, err := oauth.Authed(c, false, false, false, false) + authed, err := oauth.Authed(c, true, true, true, true) if err != nil { apiutil.ErrorHandler(c, gtserror.NewErrorUnauthorized(err, err.Error()), m.processor.InstanceGetV1) return diff --git a/internal/api/client/accounts/themesget.go b/internal/api/client/accounts/themesget.go new file mode 100644 index 000000000..5a0cb6d94 --- /dev/null +++ b/internal/api/client/accounts/themesget.go @@ -0,0 +1,77 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package accounts + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" + "github.com/superseriousbusiness/gotosocial/internal/oauth" +) + +// AccountThemesGETHandler swagger:operation GET /api/v1/accounts/themes accountThemes +// +// See preset CSS themes available to accounts on this instance. +// +// --- +// tags: +// - accounts +// +// produces: +// - application/json +// +// security: +// - OAuth2 Bearer: +// - read:accounts +// +// responses: +// '200': +// name: statuses +// description: Array of themes. +// schema: +// type: array +// items: +// "$ref": "#/definitions/theme" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AccountThemesGETHandler(c *gin.Context) { + _, err := oauth.Authed(c, true, true, true, true) + if err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorUnauthorized(err, err.Error()), m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + // Retrieve available themes. + themes := m.processor.Account().ThemesGet() + apiutil.JSON(c, http.StatusOK, themes) +} diff --git a/internal/api/model/account.go b/internal/api/model/account.go index 7d3fa4b62..af2a394af 100644 --- a/internal/api/model/account.go +++ b/internal/api/model/account.go @@ -89,6 +89,8 @@ type Account struct { MuteExpiresAt string `json:"mute_expires_at,omitempty"` // Extra profile information. Shown only if the requester owns the account being requested. Source *Source `json:"source,omitempty"` + // Filename of user-selected CSS theme to include when rendering this account's profile or statuses. Eg., `blurple-light.css`. + Theme string `json:"theme,omitempty"` // CustomCSS to include when rendering this account's profile or statuses. CustomCSS string `json:"custom_css,omitempty"` // Account has enabled RSS feed. @@ -162,7 +164,11 @@ type UpdateCredentialsRequest struct { FieldsAttributes *[]UpdateField `form:"fields_attributes" json:"-"` // Profile metadata names and values, parsed from JSON. JSONFieldsAttributes *map[string]UpdateField `form:"-" json:"fields_attributes"` + // Theme file name to be used when rendering this account's profile or statuses. + // Use empty string to unset. + Theme *string `form:"theme" json:"theme"` // Custom CSS to be included when rendering this account's profile or statuses. + // Use empty string to unset. CustomCSS *string `form:"custom_css" json:"custom_css"` // Enable RSS feed of public toots for this account at /@[username]/feed.rss EnableRSS *bool `form:"enable_rss" json:"enable_rss"` diff --git a/internal/api/model/theme.go b/internal/api/model/theme.go new file mode 100644 index 000000000..b98e7395a --- /dev/null +++ b/internal/api/model/theme.go @@ -0,0 +1,32 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package model + +// Theme represents one user-selectable preset CSS theme. +// +// swagger:model theme +type Theme struct { + // User-facing title of this theme. + Title string `json:"title"` + + // User-facing description of this theme. + Description string `json:"description"` + + // FileName of this theme in the themes directory. + FileName string `json:"file_name"` +} diff --git a/internal/db/bundb/migrations/20240320114447_preset_css_themes.go b/internal/db/bundb/migrations/20240320114447_preset_css_themes.go new file mode 100644 index 000000000..5d3b9f83a --- /dev/null +++ b/internal/db/bundb/migrations/20240320114447_preset_css_themes.go @@ -0,0 +1,55 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package migrations + +import ( + "context" + "strings" + + "github.com/uptrace/bun" +) + +func init() { + up := func(ctx context.Context, db *bun.DB) error { + // Add theme to account settings table. + _, err := db.ExecContext(ctx, + "ALTER TABLE ? ADD COLUMN ? TEXT", + bun.Ident("account_settings"), bun.Ident("theme"), + ) + if err != nil { + e := err.Error() + if !(strings.Contains(e, "already exists") || + strings.Contains(e, "duplicate column name") || + strings.Contains(e, "SQLSTATE 42701")) { + return err + } + } + + return nil + } + + down := func(ctx context.Context, db *bun.DB) error { + return db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { + return nil + }) + } + + if err := Migrations.Register(up, down); err != nil { + panic(err) + } +} 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. diff --git a/internal/processing/account/account.go b/internal/processing/account/account.go index 79f6ecfc1..dbcecdb0a 100644 --- a/internal/processing/account/account.go +++ b/internal/processing/account/account.go @@ -44,6 +44,7 @@ type Processor struct { formatter *text.Formatter federator *federation.Federator parseMention gtsmodel.ParseMentionFunc + themes *Themes } // New returns a new account processor. @@ -67,5 +68,6 @@ func New( formatter: text.NewFormatter(state.DB), federator: federator, parseMention: parseMention, + themes: PopulateThemes(), } } diff --git a/internal/processing/account/themes.go b/internal/processing/account/themes.go new file mode 100644 index 000000000..4f8cc49a1 --- /dev/null +++ b/internal/processing/account/themes.go @@ -0,0 +1,151 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package account + +import ( + "cmp" + "os" + "path/filepath" + "regexp" + "slices" + "strings" + + "codeberg.org/gruf/go-bytesize" + apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" + "github.com/superseriousbusiness/gotosocial/internal/log" +) + +var ( + themeTitleRegex = regexp.MustCompile(`(?m)^\ *theme-title:(.*)$`) + themeDescriptionRegex = regexp.MustCompile(`(?m)^\ *theme-description:(.*)$`) +) + +// GetThemes returns available account css themes. +func (p *Processor) ThemesGet() []apimodel.Theme { + return p.converter.ThemesToAPIThemes(p.themes.SortedByTitle) +} + +// Themes represents an in-memory +// storage structure for themes. +type Themes struct { + // Themes sorted alphabetically + // by title (case insensitive). + SortedByTitle []*gtsmodel.Theme + + // ByFileName contains themes retrievable + // by their filename eg., `light-blurple.css`. + ByFileName map[string]*gtsmodel.Theme +} + +// PopulateThemes parses available account CSS +// themes from the web assets themes directory. +func PopulateThemes() *Themes { + webAssetsAbsFilePath, err := filepath.Abs(config.GetWebAssetBaseDir()) + if err != nil { + log.Panicf(nil, "error getting abs path for web assets: %v", err) + } + + themesAbsFilePath := filepath.Join(webAssetsAbsFilePath, "themes") + themesFiles, err := os.ReadDir(themesAbsFilePath) + if err != nil { + log.Warnf(nil, "error reading themes at %s: %v", themesAbsFilePath, err) + return nil + } + + themes := &Themes{ + ByFileName: make(map[string]*gtsmodel.Theme), + } + + for _, f := range themesFiles { + // Ignore nested directories. + if f.IsDir() { + continue + } + + // Ignore weird files. + info, err := f.Info() + if err != nil { + continue + } + + // Ignore really big files. + if info.Size() > int64(bytesize.MiB) { + continue + } + + // Get just the name of the + // file, eg `blurple-light.css`. + fileName := f.Name() + + // Get just the `.css` part. + extensionWithDot := filepath.Ext(fileName) + + // Remove any leading `.` + extension := strings.TrimPrefix(extensionWithDot, ".") + + // Ignore non-css files. + if extension != "css" { + continue + } + + // Load the file contents. + path := filepath.Join(themesAbsFilePath, fileName) + contents, err := os.ReadFile(path) + if err != nil { + log.Warnf(nil, "error reading css theme at %s: %v", path, err) + continue + } + + // Try to parse a title and description + // for this theme from the file itself. + var themeTitle string + titleMatches := themeTitleRegex.FindSubmatch(contents) + if len(titleMatches) == 2 { + themeTitle = strings.TrimSpace(string(titleMatches[1])) + } else { + // Fall back to file name + // without `.css` suffix. + themeTitle = strings.TrimSuffix(fileName, ".css") + } + + var themeDescription string + descMatches := themeDescriptionRegex.FindSubmatch(contents) + if len(descMatches) == 2 { + themeDescription = strings.TrimSpace(string(descMatches[1])) + } + + theme := >smodel.Theme{ + Title: themeTitle, + Description: themeDescription, + FileName: fileName, + } + + themes.SortedByTitle = append(themes.SortedByTitle, theme) + themes.ByFileName[fileName] = theme + } + + // Sort themes alphabetically + // by title (case insensitive). + slices.SortFunc(themes.SortedByTitle, func(a, b *gtsmodel.Theme) int { + return cmp.Compare(strings.ToLower(a.Title), strings.ToLower(b.Title)) + }) + + return themes +} diff --git a/internal/processing/account/themes_test.go b/internal/processing/account/themes_test.go new file mode 100644 index 000000000..9506aee50 --- /dev/null +++ b/internal/processing/account/themes_test.go @@ -0,0 +1,52 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package account_test + +import ( + "testing" + + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/superseriousbusiness/gotosocial/internal/processing/account" +) + +type ThemesTestSuite struct { + AccountStandardTestSuite +} + +func (suite *ThemesTestSuite) TestPopulateThemes() { + config.SetWebAssetBaseDir("../../../web/assets") + + themes := account.PopulateThemes() + if themes == nil { + suite.FailNow("themes was nil") + } + + suite.NotEmpty(themes.SortedByTitle) + theme := themes.ByFileName["blurple-light.css"] + if theme == nil { + suite.FailNow("theme was nil") + } + suite.Equal("Blurple (light)", theme.Title) + suite.Equal("Official light blurple theme", theme.Description) + suite.Equal("blurple-light.css", theme.FileName) +} + +func TestThemesTestSuite(t *testing.T) { + suite.Run(t, new(ThemesTestSuite)) +} diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go index 7b5561138..076b6d7f4 100644 --- a/internal/processing/account/update.go +++ b/internal/processing/account/update.go @@ -256,6 +256,22 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form } } + if form.Theme != nil { + theme := *form.Theme + if theme == "" { + // Empty is easy, just clear this. + account.Settings.Theme = "" + } else { + // Theme was provided, check + // against known available themes. + if _, ok := p.themes.ByFileName[theme]; !ok { + err := fmt.Errorf("theme %s not available on this instance, see /api/v1/accounts/themes for available themes", theme) + return nil, gtserror.NewErrorBadRequest(err, err.Error()) + } + account.Settings.Theme = theme + } + } + if form.CustomCSS != nil { customCSS := *form.CustomCSS if err := validate.CustomCSS(customCSS); err != nil { diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 0ff3c2268..bf44c7254 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -170,12 +170,13 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A // Bits that vary between remote + local accounts: // - Account (acct) string. // - Role. - // - Settings things (enableRSS, customCSS). + // - Settings things (enableRSS, theme, customCSS). var ( acct string role *apimodel.AccountRole enableRSS bool + theme string customCSS string ) @@ -208,6 +209,7 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A } enableRSS = *a.Settings.EnableRSS + theme = a.Settings.Theme customCSS = a.Settings.CustomCSS } @@ -272,6 +274,7 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A Emojis: apiEmojis, Fields: fields, Suspended: !a.SuspendedAt.IsZero(), + Theme: theme, CustomCSS: customCSS, EnableRSS: enableRSS, Role: role, @@ -1771,3 +1774,16 @@ func (c *Converter) convertTagsToAPITags(ctx context.Context, tags []*gtsmodel.T return apiTags, errs.Combine() } + +// ThemesToAPIThemes converts a slice of gtsmodel Themes into apimodel Themes. +func (c *Converter) ThemesToAPIThemes(themes []*gtsmodel.Theme) []apimodel.Theme { + apiThemes := make([]apimodel.Theme, len(themes)) + for i, theme := range themes { + apiThemes[i] = apimodel.Theme{ + Title: theme.Title, + Description: theme.Description, + FileName: theme.FileName, + } + } + return apiThemes +} diff --git a/internal/web/profile.go b/internal/web/profile.go index b629c98b9..a4809a72d 100644 --- a/internal/web/profile.go +++ b/internal/web/profile.go @@ -140,16 +140,40 @@ func (m *Module) profileGETHandler(c *gin.Context) { return } + // Prepare stylesheets for profile. + stylesheets := make([]string, 0, 6) + + // Basic profile stylesheets. + stylesheets = append( + stylesheets, + []string{ + cssFA, + cssStatus, + cssThread, + cssProfile, + }..., + ) + + // User-selected theme if set. + if theme := targetAccount.Theme; theme != "" { + stylesheets = append( + stylesheets, + themesPathPrefix+"/"+theme, + ) + } + + // Custom CSS for this user last in cascade. + stylesheets = append( + stylesheets, + "/@"+targetAccount.Username+"/custom.css", + ) + page := apiutil.WebPage{ - Template: "profile.tmpl", - Instance: instance, - OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount), - Stylesheets: []string{ - cssFA, cssStatus, cssThread, cssProfile, - // Custom CSS for this user last in cascade. - "/@" + targetAccount.Username + "/custom.css", - }, - Javascript: []string{jsFrontend}, + Template: "profile.tmpl", + Instance: instance, + OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount), + Stylesheets: stylesheets, + Javascript: []string{jsFrontend}, Extra: map[string]any{ "account": targetAccount, "rssFeed": rssFeed, diff --git a/internal/web/thread.go b/internal/web/thread.go index 4dcd1d221..ffec565e6 100644 --- a/internal/web/thread.go +++ b/internal/web/thread.go @@ -138,16 +138,39 @@ func (m *Module) threadGETHandler(c *gin.Context) { return } + // Prepare stylesheets for thread. + stylesheets := make([]string, 0, 5) + + // Basic thread stylesheets. + stylesheets = append( + stylesheets, + []string{ + cssFA, + cssStatus, + cssThread, + }..., + ) + + // User-selected theme if set. + if theme := targetAccount.Theme; theme != "" { + stylesheets = append( + stylesheets, + themesPathPrefix+"/"+theme, + ) + } + + // Custom CSS for this user last in cascade. + stylesheets = append( + stylesheets, + "/@"+targetAccount.Username+"/custom.css", + ) + page := apiutil.WebPage{ - Template: "thread.tmpl", - Instance: instance, - OGMeta: apiutil.OGBase(instance).WithStatus(status), - Stylesheets: []string{ - cssFA, cssStatus, cssThread, - // Custom CSS for this user last in cascade. - "/@" + targetUsername + "/custom.css", - }, - Javascript: []string{jsFrontend}, + Template: "thread.tmpl", + Instance: instance, + OGMeta: apiutil.OGBase(instance).WithStatus(status), + Stylesheets: stylesheets, + Javascript: []string{jsFrontend}, Extra: map[string]any{ "status": status, "context": context, diff --git a/internal/web/web.go b/internal/web/web.go index 5e57d08c6..19df63332 100644 --- a/internal/web/web.go +++ b/internal/web/web.go @@ -44,6 +44,7 @@ const ( rssFeedPath = profileGroupPath + "/feed.rss" assetsPathPrefix = "/assets" distPathPrefix = assetsPathPrefix + "/dist" + themesPathPrefix = assetsPathPrefix + "/themes" settingsPathPrefix = "/settings" settingsPanelGlob = settingsPathPrefix + "/*panel" userPanelPath = settingsPathPrefix + "/user" diff --git a/mkdocs.yml b/mkdocs.yml index 1b479304f..e808ab6b6 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -121,6 +121,7 @@ nav: - "admin/media_caching.md" - "admin/spam.md" - "admin/database_maintenance.md" + - "admin/themes.md" - "Federation": - "federation/index.md" - "federation/glossary.md" diff --git a/web/assets/themes/blurple-dark.css b/web/assets/themes/blurple-dark.css new file mode 100644 index 000000000..7e4a9cc9a --- /dev/null +++ b/web/assets/themes/blurple-dark.css @@ -0,0 +1,92 @@ +/* + theme-title: Blurple (dark) + theme-description: Official dark blurple theme +*/ + +:root { + /* Define our nice blurple palette */ + --blurple1: #ffffff; + --blurple2: #ebe6f8; + --blurple3: #d6cceb; + --blurple4: #c2b3e1; + --blurple5: #ad99d7; + --blurple6: #9980cd; + --blurple7: #8566c2; + --blurple8: #704db8; + --blurple9: #5c33ae; + --blurple10: #471aa4; + --blurple11: #33009a; + --blurple12: #170044; + + /* Restyle basic colors to use blurple */ + --blue1: var(--blurple1); + --blue2: var(--blurple2); + --blue3: var(--blurple3); + + /* Basic page styling (background + foreground) */ + --bg: var(--blurple12); + --bg-accent: var(--blurple11); + --fg: var(--blurple1); + --fg-reduced: var(--blurple3); + + /* Profile page styling (light) */ + --profile-bg: var(--blurple11); + + /* Blurpleize buttons */ + --button-bg: var(--blurple2); + --button-fg: var(--blurple11); + + /* Blurpleize statuses */ + --status-bg: var(--blurple11); + --status-focus-bg: var(--blurple11); + --status-info-bg: var(--blurple9); + --status-focus-info-bg: var(--blurple9); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid black; +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--blurple8) var(--blurple12); +} + +/* Profile fields */ +.profile .about-user .fields .field { + border-bottom: 0.1rem solid var(--blurple8); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem solid var(--blurple8); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--blurple9); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--blurple11); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--bg); +} +.status .text .poll .poll-info { + background-color: var(--blurple11); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--blurple12); + color: var(--fg-reduced); +} + +/* Block quotes */ +blockquote { + background-color: var(--blurple12); + color: var(--fg-reduced); +} diff --git a/web/assets/themes/blurple-light.css b/web/assets/themes/blurple-light.css new file mode 100644 index 000000000..7f5811401 --- /dev/null +++ b/web/assets/themes/blurple-light.css @@ -0,0 +1,94 @@ +/* + theme-title: Blurple (light) + theme-description: Official light blurple theme +*/ + +:root { + /* Define our nice blurple palette */ + --blurple1: #ffffff; + --blurple2: #ebe6f8; + --blurple3: #d6cceb; + --blurple4: #c2b3e1; + --blurple5: #ad99d7; + --blurple6: #9980cd; + --blurple7: #8566c2; + --blurple8: #704db8; + --blurple9: #5c33ae; + --blurple10: #471aa4; + --blurple11: #33009a; + --blurple12: #170044; + + /* Restyle basic colors to use blurple */ + --white1: var(--blurple2); + --white2: var(--blurple3); + --blue1: var(--blurple6); + --blue2: var(--blurple8); + --blue3: var(--blurple10); + + /* Basic page styling (background + foreground) */ + --bg: linear-gradient(var(--blurple2), var(--blurple1)); + --bg-accent: var(--white2); + --fg: var(--gray1); + --fg-reduced: var(--gray2); + + /* Profile page styling (light) */ + --profile-bg: var(--white2); + + /* Blurpleize buttons */ + --button-bg: var(--blue2); + --button-fg: var(--white1); + + /* Blurpleize statuses */ + --status-bg: var(--white1); + --status-focus-bg: var(--white1); + --status-info-bg: var(--white2); + --status-focus-info-bg: var(--white2); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid var(--blurple10); +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--blurple8) var(--blurple2); +} + +/* Profile fields */ +.profile .about-user .fields .field { + border-bottom: 0.1rem solid var(--blurple10); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem solid var(--blurple10); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--blurple10); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--blurple2); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--white2); +} +.status .text .poll .poll-info { + background-color: var(--white1); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--blurple12); + color: var(--blurple2); +} + +/* Block quotes */ +blockquote { + background-color: var(--blurple1); + color: var(--blurple12); +} diff --git a/web/assets/themes/midnight-trip.css b/web/assets/themes/midnight-trip.css new file mode 100644 index 000000000..c6b1623ee --- /dev/null +++ b/web/assets/themes/midnight-trip.css @@ -0,0 +1,159 @@ +/* + theme-title: Midnight Trip + theme-description: Woah +*/ + +/* Theme colors */ +:root { + --acid-green: rgb(63, 255, 0); + --acid-green-light: #79FF4D; + --acid-green-dark: #269900; + --magenta: rgb(153, 50, 204); + --darkred: rgb(58, 0, 15); + --darkblue: rgb(0, 0, 58); + --darkmagenta: rgb(47, 1, 65); + + /* Override */ + --orange2: var(--acid-green); + --gray1: rgb(20, 21, 23); + --blue1: var(--acid-green-dark); + --blue2: var(--acid-green-light); + --blue3: var(--acid-green); +} + +body { + background: linear-gradient(-45deg, black, var(--darkmagenta), var(--darkblue), var(--darkred)); + background-size: 400% 400%; + height: 100%; +} + +@media not (prefers-reduced-motion) { + body { + animation: gradient 30s ease infinite; + } + + @keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } + } +} + +html, body { + /* Funky scroll bar */ + scrollbar-color: var(--acid-green) var(--gray1); +} + +/* Instance display name */ +.page-header { + grid-column: 2; + align-self: start; + margin: 1rem 0 1rem 0; + background-color: var(--gray1); + border: 0.25rem solid var(--magenta); + border-radius: var(--br); +} + +/* Header card */ +.profile .profile-header { + background-color: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +/* About + Pinned posts headers */ +.profile .col-header { + background: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +.profile .about-user .col-header { + border-bottom: none; + margin-bottom: 0; +} + +/* Make about sections transparent */ +.profile .about-user .fields, .profile .about-user .bio, .profile .about-user .accountstats { + background: var(--gray1); + border-left: 0.25rem solid var(--magenta); + border-right: 0.25rem solid var(--magenta); +} + +/* Fiddle around with borders on about sections */ +.profile .about-user .fields .field:first-child { + border-top: 0.25rem dashed var(--magenta); +} +.profile .about-user .fields .field { + border-bottom: 0.25rem dashed var(--magenta); +} +.profile .about-user .accountstats { + border-top: 0.25rem dashed var(--magenta); + border-bottom: 0.25rem solid var(--magenta); +} + +/* Statuses + threads */ + +/* Thread column header */ +.thread .col-header { + background: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +/* Main status body */ +.status, .status.expanded { + background: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +/* Code snippets */ +.status .text .content pre, .status .text .content code { + background: black; + color: var(--white2); +} + +/* Block quotes */ +.status .text .content blockquote { + background-color: black; +} + +/* Media wrapper for attachments */ +.status .media .media-wrapper { + background: var(--bg-nearly-opaque); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + border: 0.2rem dashed var(--magenta); +} + +/* Polls */ +.status .text .poll { + background-color: black; + border: 0.25rem solid var(--magenta); +} + +.status .text .poll .poll-info { + background-color: black; +} + +/* Status info bars */ +.status .status-info, .status.expanded .status-info { + background: black; +} + +/* Back + next links */ +.backnextlinks { + background: var(--gray1); + padding: 0.5rem; + border: 0.25rem solid var(--magenta); + border-radius: var(--br); +} + +.page-footer { + margin-top: 2rem; + background-color: var(--gray1); + border-top: 0.25rem solid var(--magenta); +} diff --git a/web/assets/themes/soft.css b/web/assets/themes/soft.css new file mode 100644 index 000000000..6507fa701 --- /dev/null +++ b/web/assets/themes/soft.css @@ -0,0 +1,124 @@ +/* + theme-title: Soft + theme-description: Pastel pink and blue with dark magenta trim +*/ + +:root { + /* Define our palette */ + --soft-pink: rgb(255, 199, 234); + --soft-pink-translucent: rgb(255, 199, 234, 30%); + --soft-lilac: #D8B4F8; + --soft-lilac-translucent: rgb(216, 180, 248, 30%); + --soft-blue: #d6f1ff; + + /* Override */ + --blue1: #7f16de; + --blue2: #7514cc; + --blue3: #6b12ba; + --orange2: var(--blue1); + --br: 0.8rem; + --br-inner: 0.4rem; + + /* Basic page styling (background + foreground) */ + --bg: linear-gradient(-90deg, var(--soft-blue), var(--soft-pink), white, var(--soft-pink), var(--soft-blue)); + --bg-accent: var(--soft-pink-translucent); + --fg: var(--gray1); + --fg-reduced: var(--gray3); + + /* Profile page styling (light) */ + --profile-bg: var(--soft-pink-translucent); + + /* Statuses */ + --status-bg: var(--soft-pink-translucent); + --status-focus-bg: var(--soft-pink-translucent); + --status-info-bg: var(--soft-lilac-translucent); + --status-focus-info-bg: var(--soft-lilac-translucent); + + /* Boot-on */ + --button-fg: var(--white1); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid var(--gray8); +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--orange2) var(--soft-pink); +} + +/* Header card */ +.profile .profile-header { + border: var(--boxshadow-border); +} + +.profile .profile-header .basic-info .namerole .role { + border: var(--boxshadow-border); +} + +/* About + Pinned posts headers */ +.profile .col-header { + border: var(--boxshadow-border); +} + +.profile .about-user .col-header { + margin-bottom: initial; + border-bottom: none; + border-top: var(--boxshadow-border); + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); +} + +/* Profile fields + bio */ +.profile .about-user .fields { + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); +} +.profile .about-user .fields .field { + border-bottom: 0.1rem dashed var(--blue3); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem dashed var(--blue3); +} +.profile .about-user .bio { + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); +} +.profile .about-user .accountstats { + background: var(--soft-lilac-translucent); + border-bottom: var(--boxshadow-border); + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); + border-bottom-left-radius: var(--br); + border-bottom-right-radius: var(--br); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--blue3); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--soft-pink-translucent); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--soft-lilac-translucent); +} +.status .text .poll .poll-info { + background: var(--bg); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--gray1); + color: white; +} + +/* Block quotes */ +blockquote { + background-color: var(--soft-lilac-translucent); +} diff --git a/web/assets/themes/sunset-light.css b/web/assets/themes/sunset-light.css new file mode 100644 index 000000000..c9612e36b --- /dev/null +++ b/web/assets/themes/sunset-light.css @@ -0,0 +1,95 @@ +/* + theme-title: Sunset (light) + theme-description: Official light orange/yellow theme. +*/ + +:root { + /* Define our palette */ + --eggshell: #fff6eb; + --yellow: #FFAF45; + --orange: #FB6D48; + --pink: #D74B76; + --eggplant1: #5c385e; + --eggplant2: #523254; + --eggplant3: #482c49; + --eggplant4: #29192a; + + /* Restyle basic colors */ + --white1: var(--eggshell); + --white2: var(--yellow); + --blue1: var(--eggplant1); + --blue2: var(--eggplant2); + --blue3: var(--eggplant3); + --orange2: var(--pink); + + /* Basic page styling (background + foreground) */ + --bg: linear-gradient(var(--eggplant1), var(--pink), var(--orange), var(--yellow), var(--eggshell)); + --bg-accent: var(--white2); + --fg: var(--eggplant4); + --fg-reduced: var(--eggplant3); + + /* Profile page styling (light) */ + --profile-bg: var(--white2); + + /* Buttons */ + --button-bg: var(--blue2); + --button-fg: var(--white1); + + /* Statuses */ + --status-bg: var(--white1); + --status-focus-bg: var(--white1); + --status-info-bg: var(--white2); + --status-focus-info-bg: var(--white2); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid var(--orange); +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--pink) var(--eggshell); +} + +.page-header a h1 { + color: var(--eggshell); +} + +/* Profile fields */ +.profile .about-user .fields .field { + border-bottom: 0.1rem solid var(--orange); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem solid var(--orange); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--orange); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--eggshell); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--white2); +} +.status .text .poll .poll-info { + background-color: var(--white1); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--eggplant4); + color: var(--white1); +} + +/* Block quotes */ +blockquote { + background-color: var(--yellow); + color: var(--eggplant4); +} diff --git a/web/source/settings/lib/query/user/index.ts b/web/source/settings/lib/query/user/index.ts index 8cf64197b..8c4e5215b 100644 --- a/web/source/settings/lib/query/user/index.ts +++ b/web/source/settings/lib/query/user/index.ts @@ -23,6 +23,7 @@ import type { MoveAccountFormData, UpdateAliasesFormData } from "../../types/migration"; +import type { Theme } from "../../types/theme"; const extended = gtsApi.injectEndpoints({ endpoints: (build) => ({ @@ -66,6 +67,11 @@ const extended = gtsApi.injectEndpoints({ url: `/api/v1/accounts/move`, body: data }) + }), + accountThemes: build.query({ + query: () => ({ + url: `/api/v1/accounts/themes` + }) }) }) }); @@ -75,4 +81,5 @@ export const { usePasswordChangeMutation, useAliasAccountMutation, useMoveAccountMutation, + useAccountThemesQuery, } = extended; diff --git a/web/source/settings/lib/types/theme.ts b/web/source/settings/lib/types/theme.ts new file mode 100644 index 000000000..e605192f8 --- /dev/null +++ b/web/source/settings/lib/types/theme.ts @@ -0,0 +1,24 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +export interface Theme { + title: string; + description: string; + file_name: string; +} diff --git a/web/source/settings/style.css b/web/source/settings/style.css index 501e9dbef..372031203 100644 --- a/web/source/settings/style.css +++ b/web/source/settings/style.css @@ -439,7 +439,7 @@ section.with-sidebar > div, section.with-sidebar > form { display: grid; max-width: 60rem; grid-template-columns: 70% 30%; - grid-template-rows: 100%; + grid-template-rows: auto; gap: 1rem; .files { @@ -465,6 +465,12 @@ section.with-sidebar > div, section.with-sidebar > form { gap: 0.5rem; } } + + .theme, .form-field.radio { + display: flex; + flex-direction: column; + gap: 0.5rem; + } } .migration-details { diff --git a/web/source/settings/user/profile.tsx b/web/source/settings/user/profile.tsx index a03d4d247..cd4b17227 100644 --- a/web/source/settings/user/profile.tsx +++ b/web/source/settings/user/profile.tsx @@ -23,7 +23,8 @@ import { useTextInput, useFileInput, useBoolInput, - useFieldArrayInput + useFieldArrayInput, + useRadioInput } from "../lib/form"; import useFormSubmit from "../lib/form/submit"; @@ -33,14 +34,15 @@ import { TextInput, TextArea, FileInput, - Checkbox + Checkbox, + RadioGroup } from "../components/form/inputs"; import FormWithData from "../lib/form/form-with-data"; import FakeProfile from "../components/fake-profile"; import MutationButton from "../components/form/mutation-button"; -import { useInstanceV1Query } from "../lib/query"; +import { useAccountThemesQuery, useInstanceV1Query } from "../lib/query"; import { useUpdateCredentialsMutation } from "../lib/query/user"; import { useVerifyCredentialsQuery } from "../lib/query/oauth"; @@ -64,6 +66,7 @@ function UserProfileForm({ data: profile }) { - file header - bool enable_rss - string custom_css (if enabled) + - string theme */ const { data: instance } = useInstanceV1Query(); @@ -73,13 +76,24 @@ function UserProfileForm({ data: profile }) { maxPinnedFields: instance?.configuration?.accounts?.max_profile_fields ?? 6 }; }, [instance]); + + // Parse out available theme options into nice format. + const { data: themes } = useAccountThemesQuery(); + let themeOptions = { "": "Default" }; + themes?.forEach((theme) => { + let key = theme.file_name; + let value = theme.title; + if (theme.description) { + value += " - " + theme.description; + } + themeOptions[key] = value; + }); const form = { avatar: useFileInput("avatar", { withPreview: true }), header: useFileInput("header", { withPreview: true }), displayName: useTextInput("display_name", { source: profile }), note: useTextInput("note", { source: profile, valueSelector: (p) => p.source?.note }), - customCSS: useTextInput("custom_css", { source: profile, nosubmit: !instanceConfig.allowCustomCSS }), bot: useBoolInput("bot", { source: profile }), locked: useBoolInput("locked", { source: profile }), discoverable: useBoolInput("discoverable", { source: profile}), @@ -88,6 +102,11 @@ function UserProfileForm({ data: profile }) { defaultValue: profile?.source?.fields, length: instanceConfig.maxPinnedFields }), + customCSS: useTextInput("custom_css", { source: profile, nosubmit: !instanceConfig.allowCustomCSS }), + theme: useRadioInput("theme", { + source: profile, + options: themeOptions, + }), }; const [submitForm, result] = useFormSubmit(form, useUpdateCredentialsMutation(), { @@ -125,6 +144,18 @@ function UserProfileForm({ data: profile }) { /> + +