Commit Graph

130 Commits

Author SHA1 Message Date
Penar Musaraj
882b0aac19
DEV: Let themes extend color definitions (#10429)
Themes can now declare custom colors that get compiled in core's color definitions stylesheet, thus allowing themes to better support dark/light color schemes. 

For example, if you need your theme to use tertiary for an element in a light color scheme and quaternary in a dark scheme, you can add the following SCSS to your theme's `color_definitions.scss` file: 

```
:root {
  --mytheme-tertiary-or-quaternary: #{dark-light-choose($tertiary, $quaternary)};
}
```

And then use the `--mytheme-tertiary-or-quaternary` variable as the color property of that element. You can also use this file to add color variables that use SCSS color transformation functions (lighten, darken, saturate, etc.) without compromising your theme's compatibility with different color schemes.
2020-08-18 13:02:13 -04:00
Penar Musaraj
c937afc75e
FEATURE: automatic dark mode (#10341)
A first step to adding automatic dark mode color scheme switching. Adds a new SCSS file at `color_definitions.scss` that serves to output all SCSS color variables as CSS custom properties. And replaces all SCSS color variables with the new CSS custom properties throughout the stylesheets. 

This is an alpha feature at this point, can only be enabled via console using the `default_dark_mode_color_scheme_id` site setting.
2020-08-03 22:57:10 -04:00
Martin Brennan
516a03be09
FIX: Improve admin permalink UX (#10101)
The admin permalink list was a little tricky to use because the URLs are easily reduced with a ... if they are too long. This adds a copy to clipboard button for the URL and a title on hover so the full text of the URL can be seen.
2020-06-22 13:14:16 +10:00
Jarek Radosz
7ac9a79ecb UX: Fix inputs alignment in admin/customize/colors 2020-06-01 05:50:49 +02:00
Joffrey JAFFEUX
0996c3b7b3
FEATURE: allows multiple custom emoji groups (#9308)
Note: DBHelper would fail with a sql syntax error on columns like "group".

Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2020-03-30 20:16:10 +02:00
Joffrey JAFFEUX
902d0e1e3a
DEV: enforces no-invalid-interactive linting rule (#8907) 2020-02-11 15:55:16 +01:00
Kris
f8633d5c58 FIX: Give expanded CSS/HTML editor >0 height 2019-12-20 10:37:23 -05:00
Krzysztof Kotlarek
bb69e8942e
FEATURE: ability to add all active components to theme (#8447)
* FEATURE: ability to add all active components to theme

* FIX: add a component to all themes takes only active ones

* FIX: move select components/themes to top

* FIX: improve defaultIsAvailable

* FIX: Add filter(Boolean) and remove btn class
2019-12-04 17:13:41 +11:00
Krzysztof Kotlarek
b120728999
FEATURE: Ability to add components to all themes (#8404)
* FEATURE: Ability to add components to all themes

This is the first and functional step from that topic https://dev.discourse.org/t/adding-a-theme-component-is-too-much-work/15398/16

The idea here is that when a new component is added, the user can easily assign it to all themes (parents).

To achieve that, I needed to change a site-setting component to accept `setDefaultValues` action and `setDefaultValuesLabel` translated label.
Also, I needed to add `allowAny` option to disable that for theme selector.

I also refactored backend to accept both parent and child ids with one method to avoid duplication (Renamed `add_child_theme!` to more general `add_relative_theme!`)

* FIX: Improvement after code review

* FIX: Improvement after code review2

* FIX: use mapBy and filterBy directly
2019-11-28 16:19:01 +11:00
Kris
b066a4128d Adding a text-overflow: ellipsis; mixin and related cleanup 2019-11-06 14:00:29 -05:00
Jarek Radosz
d43e7354ec
DEV: Convert <button> tags to {{d-button}} components (#8224)
* DEV: Convert <button> tags to {{d-button}}

* Fixes
2019-11-04 11:23:54 +01:00
Kris
9e9d57d7ee General admin style cleanup 2019-10-04 13:25:54 -04:00
Joffrey JAFFEUX
731f61a818
UX: modifies admin email template to have more space for the form (#7993) 2019-08-12 10:27:25 +02:00
Neil Lalonde
9656a21fdb
FEATURE: customization of html emails (#7934)
This feature adds the ability to customize the HTML part of all emails using a custom HTML template and optionally some CSS to style it. The CSS will be parsed and converted into inline styles because CSS is poorly supported by email clients. When writing the custom HTML and CSS, be aware of what email clients support. Keep customizations very simple.

Customizations can be added and edited in Admin > Customize > Email Style.

Since the summary email is already heavily styled, there is a setting to disable custom styles for summary emails called "apply custom styles to digest" found in Admin > Settings > Email.

As part of this work, RTL locales are now rendered correctly for all emails.
2019-07-30 15:05:08 -04:00
OsamaSayegh
8a525cafec UX: Use height relative to the viewport for robots.txt textarea 2019-07-15 19:35:50 +00:00
Osama Sayegh
6515ff19e5
FEATURE: Allow customization of robots.txt (#7884)
* FEATURE: Allow customization of robots.txt

This allows admins to customize/override the content of the robots.txt
file at /admin/customize/robots. That page is not linked to anywhere in
the UI -- admins have to manually type the URL to access that page.

* use Ember.computed.not

* Jeff feedback

* Feedback

* Remove unused import
2019-07-15 20:47:44 +03:00
Osama Sayegh
3d64532273 FEATURE: allow disabling theme components (#7812)
This allows you to temporarily disable components without having to remove them from a theme. 

This feature is very handy when doing quick fix engineering.
2019-07-03 18:18:11 +10:00
Arpit Jalan
ed70595314 UX: add information about the use of permalinks 2019-05-07 17:13:26 +05:30
Kris
df85d4593e UX: Unify admin intro styles for badges/customize, improve mobile 2019-04-09 20:32:24 -04:00
Kris
8e9d0ceb67 UX: Mobile - fix editor button space, divider, extra upload icon 2019-04-09 13:15:31 -04:00
Gerhard Schlager
3fd04df781
FEATURE: Locale support for seeded categories and topics (#7110) 2019-03-18 21:09:13 +01:00
Kris
9d3c7d7b25 prettier 2019-03-06 19:52:34 -05:00
Kris
e233a69db0 Customize nav pill fix 2019-03-06 19:42:44 -05:00
David Taylor
e67474daf4 UX: Don't link to theme source unless it's http(s) 2019-02-28 17:01:59 +00:00
David Taylor
05ee1d1aba
FEATURE: Added settings/translations support to theme editor UI (#7026)
- These advanced fields are hidden behind an 'advanced' button, so will not affect normal use
- The editor has been refactored into a component, and styling cleaned up so menu items do not overlap on small screens
- Styling has been added to indicate which fields are in use for a theme
- Icons have been added to identify which fields have errors
2019-02-19 12:56:01 +00:00
Kris
f849169619 UX: Modifications to admin/customize layout 2019-02-07 22:27:35 -05:00
Kris
1a72242746 line-height adjustment 2019-02-05 21:44:06 -05:00
Kris
a52b2c9625 UX: Moving the create theme buttons, adding buttons to theme index 2019-02-05 21:40:17 -05:00
Kris
94f16ba931 UX: Make button icons use lighter color instead of opacity 2019-01-31 13:59:49 -05:00
Kris
f7deb52c90 FIX: Class name for external-link on customize page 2019-01-28 17:15:36 -05:00
Kris
94e2b77c5f Fix theme component name's color when theme is selected 2019-01-25 17:25:12 -05:00
David Taylor
a48731e359
FEATURE: Support additional metadata in theme about.json (#6944)
New `about.json` fields (all optional):
 - `authors`: An arbitrary string describing the theme authors
 - `theme_version`: An arbitrary string describing the theme version
 - `minimum_discourse_version`: Theme will be auto-disabled for lower versions. Must be a valid version descriptor.
 - `maximum_discourse_version`: Theme will be auto-disabled for lower versions. Must be a valid version descriptor.

A localized description for a theme can be provided in the language files under the `theme_metadata.description` key

The admin UI has been re-arranged to display this new information, and give more prominence to the remote theme options.
2019-01-25 14:19:01 +00:00
David Taylor
880311dd4d
FEATURE: Support for localized themes (#6848)
- Themes can supply translation files in a format like `/locales/{locale}.yml`. These files should be valid YAML, with a single top level key equal to the locale being defined. For now these can only be defined using the `discourse_theme` CLI, importing a `.tar.gz`, or from a GIT repository.

- Fallback is handled on a global level (if the locale is not defined in the theme), as well as on individual keys (if some keys are missing from the selected interface language).

- Administrators can override individual keys on a per-theme basis in the /admin/customize/themes user interface.

- Theme developers should access defined translations using the new theme prefix variables:
  JavaScript: `I18n.t(themePrefix("my_translation_key"))`
  Handlebars: `{{theme-i18n "my_translation_key"}}` or `{{i18n (theme-prefix "my_translation_key")}}`

- To design for backwards compatibility, theme developers can check for the presence of the `themePrefix` variable in JavaScript

- As part of this, the old `{{themeSetting.setting_name}}` syntax is deprecated in favour of `{{theme-setting "setting_name"}}`
2019-01-17 11:46:11 +00:00
Penar Musaraj
18055f5e37 DEV: show remote theme repository URL 2019-01-16 11:09:16 -05:00
Kris
8176d26dbd UX: Reducing usage of btn-small, simplifying styles 2019-01-11 19:41:09 -05:00
Kris
0381e99b71 UX: improving theme upload modal alignment, markup 2018-11-21 16:50:49 -05:00
Joffrey JAFFEUX
7fa21ce199
UX: minor tweaks to theme components selection UI (#6596) 2018-11-13 14:57:50 +01:00
Guto Foletto
0abc932056 add styles so permalinks admin could fit mobile screen (#6496) 2018-10-17 17:37:14 +02:00
Erin Kosewic
51aba32651 FEATURE: add branch option to remote theme import
* FEATURE: add branch option to remote theme import

* FIX: Add missing variable in params

* FIX: Add missing param for import_theme method

* SPEC: Add test methods for branch support in git import

* FIX: Add missing space to scss style

* Do not assume default branch as master

* Change branch field placeholder

* FIX: add missing div start tag
2018-10-09 17:01:08 +11:00
Sam
e622adfb89 correct warning 2018-09-21 12:05:08 +10:00
Joffrey JAFFEUX
87a97cbf4b
Merge branch 'master' into theme-select-mobile 2018-09-20 10:31:41 +02:00
Joe
e844fa5370
UX: general cleanup of inputs, buttons and select elements - part 1 2018-09-19 20:37:04 +08:00
Kris
7f420b61cb Removing unneeded theme intro text 2018-09-17 12:00:20 -04:00
Joffrey JAFFEUX
01913b9dc0 FIX: improves themes/components UI on mobile 2018-09-17 10:05:18 +02:00
OsamaSayegh
c9a5438a88 use woman_artist emoji 2018-09-17 09:49:53 +10:00
OsamaSayegh
c7d81e2682 FIX/FEATURE: don't blow up when can't reach theme's repo, show problem themes on dashboard 2018-09-17 09:49:53 +10:00
OsamaSayegh
ca28548762 feedback (see commit description for details)
* fill blank space when no theme is selected
* animate row's height in themes/components list when selecting, and hide children list
* show warning when you move to a different page and have unsaved changes
* refactor `adminCustomizeThemes.show` controller
* allow collapsing/expanding children lists
* fix a bug when adding components to a theme (changed the way it works slightly)
* a bunch of other minor things
2018-09-17 09:49:53 +10:00
OsamaSayegh
a4f057a589 UX: improvements to admin theme UI 2018-09-17 09:49:53 +10:00
Osama Sayegh
e0cc29d658 FEATURE: themes and components split
* FEATURE: themes and components split

* two seperate methods to switch theme type

* use strict equality operator
2018-08-24 11:30:00 +10:00
Neil Lalonde
701c5ae781 UX: admin permalink form can fit on one line 2018-08-09 11:05:27 -04:00
Kris
84d822959a Reducing some specificity, color fix 2018-08-03 17:44:22 -04:00
Joffrey JAFFEUX
066010db7d
FEATURE: introduces list/compact_list components 2018-08-03 16:41:37 -04:00
Joe
2bfe700bd6
FEATURE: responsive admin pages 2018-07-03 11:14:53 +08:00
Joffrey JAFFEUX
174d392e5a
DEV: adds prettier (#5956)
Run `prettier --write "app/assets/stylesheets/**/*.scss" "plugins/**/*.scss"` after making sure you installed it with `yarn`

It's recommended to configure your editor to run prettier on file save.
2018-06-08 11:49:31 +02:00
Sam
39e679d3cb FEATURE: allow themes to live in private git repos
This feature allows themes sourced from git to live on private
servers, it automatically generates key pairs.
2018-03-09 16:14:38 +11:00
OsamaSayegh
282f53f0cd FEATURE: Theme settings (2) (#5611)
Allows theme authors to specify custom theme settings for the theme. 

Centralizes the theme/site settings into a single construct
2018-03-04 19:04:23 -05:00
Joffrey JAFFEUX
ac701696b3
FEATURE: replaces tag-chooser/tag-group-chooser with select-kit component
These component were also the last using select2. As a consequence select2 is removed from Discourse in this commit.
2018-02-26 11:42:57 +01:00
Kris
5de78a719b Fixing emoji admin page column 2018-02-15 15:07:26 -05:00
Kris
e85458e1b9 Removing old bootstrap columns 2018-02-14 12:27:34 -05:00
Kris
0c01e0b2fe
UX: Implementing a z-index system (#5507) 2018-01-16 19:05:12 -05:00
Kris
674013129a
UX: Type system rebuild (#5492) 2018-01-12 17:27:38 -05:00
Kris
e667434bb3 UX: Cleaning up a few admin styles 2017-12-21 17:13:06 -05:00
Kris
bb2c8b605e UX: Reducing number of different fonts used in Admin 2017-12-19 13:10:38 -05:00
Joffrey JAFFEUX
dd5562322b Revert "FIX: reflects discourse icons naming scheme s/d-icon-*/d-*"
This reverts commit b5ed980235.
2017-11-23 18:24:26 +01:00
Joffrey JAFFEUX
b5ed980235
FIX: reflects discourse icons naming scheme s/d-icon-*/d-* 2017-11-21 16:01:15 +01:00
Joffrey JAFFEUX
9c5ad4648f
FIX: improves icon alignment
the mobile icon has a higher height than other icons, given we want a total 30px height and we apply a 5px top and bottom padding, the icon can be at most 20px height
2017-10-31 23:14:14 -07:00
Robin Ward
528eac5a07 UX: Various admin class and structure improvements for styling 2017-10-30 14:50:43 -04:00
Kris
dc2d9f05dc removing scale-color, first pass 2017-10-13 11:57:10 -04:00
Robin Ward
6dfa3625df REFACTOR: Replace fa-* in SCSS with d-icon-* 2017-07-27 15:09:30 -04:00
awesomerobot
c29b7aa65d initial pass at color simplification 2017-07-14 21:43:35 -04:00
Sam
2e13c2453b FIX: maximize css editor not working 2017-05-10 15:47:11 -04:00
Sam
04b5516bf2 improve upload functionality 2017-05-10 15:47:11 -04:00
Sam
bc0b9af576 FEATURE: support uploads for themes
This allows themes to bundle various assets
2017-05-10 15:47:11 -04:00
Sam
7eabb90b71 FEATURE: added error messages for bad theme CSS / JS 2017-04-19 16:46:46 -04:00
Sam
c5ee448713 FEATURE: Only show overridden option for theme css
also fixes bad styling of mobile glyph
2017-04-19 15:24:00 -04:00
Sam
c76d780675 FEATURE: show a paintbrush for color schemes 2017-04-19 11:06:21 -04:00
Sam
0a67d859d5 correct watcher so it handles color scheme changes correctly 2017-04-18 16:48:15 -04:00
Sam
8ffb918824 FIX: add more consistent gutter to ace editor
old css hack had issues when line number was higher than 10
2017-04-18 15:43:22 -04:00
Sam
5e3a0846f7 FEATURE: allow themes to share color schemes 2017-04-17 15:56:24 -04:00
Sam
a3e8c3cd7b FEATURE: Native theme support
This feature introduces the concept of themes. Themes are an evolution
of site customizations.

Themes introduce two very big conceptual changes:

- A theme may include other "child themes", children can include grand
children and so on.

- A theme may specify a color scheme

The change does away with the idea of "enabled" color schemes.

It also adds a bunch of big niceties like

- You can source a theme from a git repo

- History for themes is much improved

- You can only have a single enabled theme. Themes can be selected by
    users, if you opt for it.

On a technical level this change comes with a whole bunch of goodies

- All CSS is now compiled using a custom pipeline that uses libsass
    see /lib/stylesheet

- There is a single pipeline for css compilation (in the past we used
    one for customizations and another one for the rest of the app

- The stylesheet pipeline is now divorced of sprockets, there is no
   reliance on sprockets for CSS bundling

- CSS is generated with source maps everywhere (including themes) this
    makes debugging much easier

- Our "live reloader" is smarter and avoid a flash of unstyled content
   we run a file watcher in "puma" in dev so you no longer need to run
   rake autospec to watch for CSS changes
2017-04-12 10:53:49 -04:00