diff options
-rw-r--r-- | res/about/help.gmi | 26 | ||||
-rw-r--r-- | src/ui/util.c | 5 |
2 files changed, 23 insertions, 8 deletions
diff --git a/res/about/help.gmi b/res/about/help.gmi index 80eb62ab..802c1a21 100644 --- a/res/about/help.gmi +++ b/res/about/help.gmi | |||
@@ -24,7 +24,7 @@ Like Gemini, Lagrange has been designed with minimalism in mind. It depends on a | |||
24 | * Sidebar for page outline, managing bookmarks and identities, and viewing history | 24 | * Sidebar for page outline, managing bookmarks and identities, and viewing history |
25 | * Multiple tabs | 25 | * Multiple tabs |
26 | * Identity management — create and use TLS client certificates | 26 | * Identity management — create and use TLS client certificates |
27 | * Light and dark UI themes | 27 | * Light and dark color themes |
28 | * Select and copy text with the mouse | 28 | * Select and copy text with the mouse |
29 | * Find text on the page | 29 | * Find text on the page |
30 | * Open image links inline on the same page | 30 | * Open image links inline on the same page |
@@ -56,6 +56,7 @@ One way to browse Gemini content is via web browser extensions or proxies that t | |||
56 | # User interface | 56 | # User interface |
57 | 57 | ||
58 | Lagrange's user interface is modeled after web browsers: | 58 | Lagrange's user interface is modeled after web browsers: |
59 | |||
59 | * There is a navigation bar at the top with Back and Forward buttons. | 60 | * There is a navigation bar at the top with Back and Forward buttons. |
60 | * There is a tab bar for switching tabs. The tab bar is hidden if there is only one tab open. | 61 | * There is a tab bar for switching tabs. The tab bar is hidden if there is only one tab open. |
61 | * There is a sidebar for managing bookmarks and TLS identities, and viewing history and the page outline. The sidebar is hidden by default. | 62 | * There is a sidebar for managing bookmarks and TLS identities, and viewing history and the page outline. The sidebar is hidden by default. |
@@ -94,7 +95,7 @@ The page cache is saved to a file when Lagrange is shut down so it can be restor | |||
94 | 95 | ||
95 | ### Opening links in a new tab | 96 | ### Opening links in a new tab |
96 | 97 | ||
97 | Holding down ${CTRL} when clicking on a link causes it to open in a new tab. | 98 | Holding down ${CTRL} when left-clicking on a link causes it to open in a new tab. Alternatively, middle-clicking a link has the same effect. |
98 | 99 | ||
99 | Right-clicking on a link shows a link-specific context menu. From there, you can also open the link in a new background tab, which will keep the current tab open. | 100 | Right-clicking on a link shows a link-specific context menu. From there, you can also open the link in a new background tab, which will keep the current tab open. |
100 | 101 | ||
@@ -172,9 +173,26 @@ The 🔃 button on the right side of the URL input field is the Reload/Stop butt | |||
172 | 173 | ||
173 | You can find a number of settings in Preferences to customize what the user interface and page contents look like. | 174 | You can find a number of settings in Preferences to customize what the user interface and page contents look like. |
174 | 175 | ||
175 | ### Window color theme | 176 | ### Color themes |
177 | |||
178 | Lagrange supports configuring dark and light modes separately. You can select a different page content color theme for dark mode and light mode. | ||
179 | |||
180 | There are four different UI color themes: two for dark mode, and two for light mode. These can be selected on the "General" tab of the Preferences dialog: | ||
181 | |||
182 | * Dark mode: "Pure Black" and "Dark" have a fully black or dark gray UI. | ||
183 | * Light mode: "Pure White" and "Light" have completety white or light gray UI. | ||
184 | |||
185 | On macOS, Lagrange will automatically switch between dark and light modes if the "Use system theme" setting is enabled. On other platforms you'll need to switch manually. | ||
186 | |||
187 | The page content color themes are selected on the "Colors" tab of Preferences. The "Dark theme" is active in dark mode, and the "Light theme" is active in light mode. | ||
176 | 188 | ||
177 | ... | 189 | * Colorful Dark: All elements of the page are colored; the background is dark and text is light. This mode provides the best visual distinction between different domains because more color combinations are available. |
190 | * Colorful Light: A single, bright background color with black text. This is the most colorful light theme. Note that colored backgrounds may reduce readability. | ||
191 | * Black: Gray body text and brightly colored headings on a black background. | ||
192 | * Gray: Slightly brighter version of Black, i.e., gray body text and colored headings on a gray background. | ||
193 | * White: Colored headings on a white background. | ||
194 | * Sepia: Light sepia background with black text. Does not change depending on domain; use this for readability if you prefer a sepia reading experience. | ||
195 | * High Contrast: White background with black text. Does not change depending on domain; use this for readability if you prefer maximum contrast between text and the background. | ||
178 | 196 | ||
179 | ### Page style | 197 | ### Page style |
180 | 198 | ||
diff --git a/src/ui/util.c b/src/ui/util.c index 603b3213..16dea8d9 100644 --- a/src/ui/util.c +++ b/src/ui/util.c | |||
@@ -1010,8 +1010,8 @@ iWidget *makePreferences_Widget(void) { | |||
1010 | { "Colorful Light", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, colorfulLight_GmDocumentTheme) }, | 1010 | { "Colorful Light", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, colorfulLight_GmDocumentTheme) }, |
1011 | { "Black", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, black_GmDocumentTheme) }, | 1011 | { "Black", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, black_GmDocumentTheme) }, |
1012 | { "Gray", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, gray_GmDocumentTheme) }, | 1012 | { "Gray", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, gray_GmDocumentTheme) }, |
1013 | { "Sepia", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, sepia_GmDocumentTheme) }, | ||
1014 | { "White", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, white_GmDocumentTheme) }, | 1013 | { "White", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, white_GmDocumentTheme) }, |
1014 | { "Sepia", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, sepia_GmDocumentTheme) }, | ||
1015 | { "High Contrast", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, highContrast_GmDocumentTheme) }, | 1015 | { "High Contrast", 0, 0, format_CStr("doctheme.%s.set arg:%d", mode, highContrast_GmDocumentTheme) }, |
1016 | }; | 1016 | }; |
1017 | addChild_Widget(headings, iClob(makeHeading_Widget(isDark ? "Dark theme:" : "Light theme:"))); | 1017 | addChild_Widget(headings, iClob(makeHeading_Widget(isDark ? "Dark theme:" : "Light theme:"))); |
@@ -1020,9 +1020,6 @@ iWidget *makePreferences_Widget(void) { | |||
1020 | themes[0].label, themes, iElemCount(themes)))), | 1020 | themes[0].label, themes, iElemCount(themes)))), |
1021 | format_CStr("prefs.doctheme.%s", mode)); | 1021 | format_CStr("prefs.doctheme.%s", mode)); |
1022 | } | 1022 | } |
1023 | //addChild_Widget(values, iClob(new_LabelWidget("Colorful", 0, 0, 0))); | ||
1024 | // addChild_Widget(headings, iClob(makeHeading_Widget("Light theme:"))); | ||
1025 | // addChild_Widget(values, iClob(new_LabelWidget("White", 0, 0, 0))); | ||
1026 | addChild_Widget(headings, iClob(makeHeading_Widget("Saturation:"))); | 1023 | addChild_Widget(headings, iClob(makeHeading_Widget("Saturation:"))); |
1027 | iWidget *sats = new_Widget(); | 1024 | iWidget *sats = new_Widget(); |
1028 | /* Saturation levels. */ { | 1025 | /* Saturation levels. */ { |