mirror of https://github.com/zulip/zulip.git
info_density: Set font size, line height vars in dev.
This commit is contained in:
parent
9ad7a9f0be
commit
7291f0a919
|
@ -119,6 +119,7 @@ EXEMPT_FILES = make_set(
|
||||||
"web/src/inbox_ui.js",
|
"web/src/inbox_ui.js",
|
||||||
"web/src/inbox_util.ts",
|
"web/src/inbox_util.ts",
|
||||||
"web/src/info_overlay.ts",
|
"web/src/info_overlay.ts",
|
||||||
|
"web/src/information_density.ts",
|
||||||
"web/src/integration_url_modal.ts",
|
"web/src/integration_url_modal.ts",
|
||||||
"web/src/invite.ts",
|
"web/src/invite.ts",
|
||||||
"web/src/left_sidebar_navigation_area.ts",
|
"web/src/left_sidebar_navigation_area.ts",
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
import $ from "jquery";
|
||||||
|
|
||||||
|
import {user_settings} from "./user_settings";
|
||||||
|
|
||||||
|
export function set_base_typography_css_variables(): void {
|
||||||
|
const font_size_px = user_settings.web_font_size_px;
|
||||||
|
const line_height_percent = user_settings.web_line_height_percent;
|
||||||
|
const line_height_unitless = line_height_percent / 100;
|
||||||
|
|
||||||
|
$(":root").css("--base-line-height-unitless", line_height_unitless);
|
||||||
|
$(":root").css("--base-font-size-px", `${font_size_px}px`);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function initialize(): void {
|
||||||
|
set_base_typography_css_variables();
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ import * as emoji_picker from "./emoji_picker";
|
||||||
import * as gear_menu from "./gear_menu";
|
import * as gear_menu from "./gear_menu";
|
||||||
import * as giphy from "./giphy";
|
import * as giphy from "./giphy";
|
||||||
import * as hotspots from "./hotspots";
|
import * as hotspots from "./hotspots";
|
||||||
|
import * as information_density from "./information_density";
|
||||||
import * as left_sidebar_navigation_area from "./left_sidebar_navigation_area";
|
import * as left_sidebar_navigation_area from "./left_sidebar_navigation_area";
|
||||||
import * as linkifiers from "./linkifiers";
|
import * as linkifiers from "./linkifiers";
|
||||||
import * as message_edit from "./message_edit";
|
import * as message_edit from "./message_edit";
|
||||||
|
@ -773,6 +774,12 @@ export function dispatch_normal_event(event) {
|
||||||
$("body").toggleClass("less_dense_mode");
|
$("body").toggleClass("less_dense_mode");
|
||||||
$("body").toggleClass("more_dense_mode");
|
$("body").toggleClass("more_dense_mode");
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
event.property === "web_font_size_px" ||
|
||||||
|
event.property === "web_line_height_percent"
|
||||||
|
) {
|
||||||
|
information_density.set_base_typography_css_variables();
|
||||||
|
}
|
||||||
if (event.property === "web_mark_read_on_scroll_policy") {
|
if (event.property === "web_mark_read_on_scroll_policy") {
|
||||||
unread_ui.update_unread_banner();
|
unread_ui.update_unread_banner();
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,7 @@ import * as hotkey from "./hotkey";
|
||||||
import * as hotspots from "./hotspots";
|
import * as hotspots from "./hotspots";
|
||||||
import * as i18n from "./i18n";
|
import * as i18n from "./i18n";
|
||||||
import * as inbox_ui from "./inbox_ui";
|
import * as inbox_ui from "./inbox_ui";
|
||||||
|
import * as information_density from "./information_density";
|
||||||
import * as invite from "./invite";
|
import * as invite from "./invite";
|
||||||
import * as left_sidebar_navigation_area from "./left_sidebar_navigation_area";
|
import * as left_sidebar_navigation_area from "./left_sidebar_navigation_area";
|
||||||
import * as left_sidebar_navigation_area_popovers from "./left_sidebar_navigation_area_popovers";
|
import * as left_sidebar_navigation_area_popovers from "./left_sidebar_navigation_area_popovers";
|
||||||
|
@ -652,8 +653,10 @@ export function initialize_everything(state_data) {
|
||||||
sentry.initialize();
|
sentry.initialize();
|
||||||
|
|
||||||
/* To store theme data for spectators, we need to initialize
|
/* To store theme data for spectators, we need to initialize
|
||||||
user_settings before setting the theme. */
|
user_settings before setting the theme. Because information
|
||||||
|
density is so fundamental, we initialize that first, however. */
|
||||||
initialize_user_settings(user_settings_params);
|
initialize_user_settings(user_settings_params);
|
||||||
|
information_density.initialize();
|
||||||
if (page_params.is_spectator) {
|
if (page_params.is_spectator) {
|
||||||
const ls = localstorage();
|
const ls = localstorage();
|
||||||
const preferred_theme = ls.get("spectator-theme-preference");
|
const preferred_theme = ls.get("spectator-theme-preference");
|
||||||
|
|
|
@ -61,6 +61,11 @@
|
||||||
/* Tippy popover related values */
|
/* Tippy popover related values */
|
||||||
--popover-menu-min-width: 230px;
|
--popover-menu-min-width: 230px;
|
||||||
|
|
||||||
|
/* Information density and typography values */
|
||||||
|
/* The legacy values here are updated via JavaScript */
|
||||||
|
--base-font-size-px: 14px;
|
||||||
|
--base-line-height-unitless: calc(20 / 14);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Message box elements and values.
|
Message box elements and values.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -34,6 +34,7 @@ const dark_theme = mock_esm("../src/dark_theme");
|
||||||
const emoji_picker = mock_esm("../src/emoji_picker");
|
const emoji_picker = mock_esm("../src/emoji_picker");
|
||||||
const gear_menu = mock_esm("../src/gear_menu");
|
const gear_menu = mock_esm("../src/gear_menu");
|
||||||
const hotspots = mock_esm("../src/hotspots");
|
const hotspots = mock_esm("../src/hotspots");
|
||||||
|
const information_density = mock_esm("../src/information_density");
|
||||||
const linkifiers = mock_esm("../src/linkifiers");
|
const linkifiers = mock_esm("../src/linkifiers");
|
||||||
const message_events = mock_esm("../src/message_events");
|
const message_events = mock_esm("../src/message_events");
|
||||||
const message_lists = mock_esm("../src/message_lists");
|
const message_lists = mock_esm("../src/message_lists");
|
||||||
|
@ -932,6 +933,18 @@ run_test("user_settings", ({override}) => {
|
||||||
assert_same(user_settings.dense_mode, true);
|
assert_same(user_settings.dense_mode, true);
|
||||||
assert_same(toggled, ["less_dense_mode", "more_dense_mode"]);
|
assert_same(toggled, ["less_dense_mode", "more_dense_mode"]);
|
||||||
|
|
||||||
|
event = event_fixtures.user_settings__web_font_size_px;
|
||||||
|
user_settings.web_font_size_px = 14;
|
||||||
|
override(information_density, "set_base_typography_css_variables", noop);
|
||||||
|
dispatch(event);
|
||||||
|
assert_same(user_settings.web_font_size_px, 16);
|
||||||
|
|
||||||
|
event = event_fixtures.user_settings__web_line_height_percent;
|
||||||
|
user_settings.web_font_size_px = 122;
|
||||||
|
override(information_density, "set_base_typography_css_variables", noop);
|
||||||
|
dispatch(event);
|
||||||
|
assert_same(user_settings.web_line_height_percent, 130);
|
||||||
|
|
||||||
override(realm_logo, "render", noop);
|
override(realm_logo, "render", noop);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -1034,6 +1034,13 @@ exports.fixtures = {
|
||||||
value: true,
|
value: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
user_settings__web_font_size_px: {
|
||||||
|
type: "user_settings",
|
||||||
|
op: "update",
|
||||||
|
property: "web_font_size_px",
|
||||||
|
value: 16,
|
||||||
|
},
|
||||||
|
|
||||||
user_settings__web_home_view_all_messages: {
|
user_settings__web_home_view_all_messages: {
|
||||||
type: "user_settings",
|
type: "user_settings",
|
||||||
op: "update",
|
op: "update",
|
||||||
|
@ -1055,6 +1062,13 @@ exports.fixtures = {
|
||||||
value: "recent_topics",
|
value: "recent_topics",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
user_settings__web_line_height_percent: {
|
||||||
|
type: "user_settings",
|
||||||
|
op: "update",
|
||||||
|
property: "web_line_height_percent",
|
||||||
|
value: 130,
|
||||||
|
},
|
||||||
|
|
||||||
user_settings__web_mark_read_on_scroll_policy: {
|
user_settings__web_mark_read_on_scroll_policy: {
|
||||||
type: "user_settings",
|
type: "user_settings",
|
||||||
op: "update",
|
op: "update",
|
||||||
|
|
Loading…
Reference in New Issue