diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 75b04542b75a..5951709ad1e1 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -972,9 +972,14 @@ "description": "Label for the sender of a message" }, "to": { - "message": "to", + "message": "To", "description": "Label for the receiver of a message" }, + "toJoiner": { + "message": "to", + "description": + "Joiner for message search results - like 'Jon' to 'Friends Group'" + }, "sent": { "message": "Sent", "description": "Label for the time a message was sent" @@ -1326,28 +1331,17 @@ "Brief timestamp for messages sent less than a minute ago. Displayed in the conversation list and message bubble." }, "timestamp_m": { - "message": "1 minute", + "message": "1m", "description": "Brief timestamp for messages sent about one minute ago. Displayed in the conversation list and message bubble." }, "timestamp_h": { - "message": "1 hour", + "message": "1h", "description": "Brief timestamp for messages sent about one hour ago. Displayed in the conversation list and message bubble." }, - "hoursAgoShort": { - "message": "$hours$ hr", - "description": - "Even further contracted form of 'X hours ago' which works both for singular and plural, used in the left pane", - "placeholders": { - "hours": { - "content": "$1", - "example": "2" - } - } - }, "hoursAgo": { - "message": "$hours$ hr ago", + "message": "$hours$h", "description": "Contracted form of 'X hours ago' which works both for singular and plural", "placeholders": { @@ -1357,19 +1351,8 @@ } } }, - "minutesAgoShort": { - "message": "$minutes$ min", - "description": - "Even further contracted form of 'X minutes ago' which works both for singular and plural, used in the left pane", - "placeholders": { - "minutes": { - "content": "$1", - "example": "10" - } - } - }, "minutesAgo": { - "message": "$minutes$ min ago", + "message": "$minutes$m", "description": "Contracted form of 'X minutes ago' which works both for singular and plural", "placeholders": { diff --git a/app/attachments.js b/app/attachments.js index 6174b2540d18..e9f044d36300 100644 --- a/app/attachments.js +++ b/app/attachments.js @@ -36,6 +36,14 @@ exports.getAllDraftAttachments = async userDataPath => { return map(files, file => path.relative(dir, file)); }; +exports.getBuiltInImages = async () => { + const dir = path.join(__dirname, '../images'); + const pattern = path.join(dir, '**', '*.svg'); + + const files = await pify(glob)(pattern, { nodir: true }); + return map(files, file => path.relative(dir, file)); +}; + // getPath :: AbsolutePath -> AbsolutePath exports.getPath = userDataPath => { if (!isString(userDataPath)) { diff --git a/fonts/Roboto-Black.ttf b/fonts/Roboto-Black.ttf deleted file mode 100644 index fbde625d403c..000000000000 Binary files a/fonts/Roboto-Black.ttf and /dev/null differ diff --git a/fonts/Roboto-BlackItalic.ttf b/fonts/Roboto-BlackItalic.ttf deleted file mode 100644 index 60f7782a2e4a..000000000000 Binary files a/fonts/Roboto-BlackItalic.ttf and /dev/null differ diff --git a/fonts/Roboto-Bold.ttf b/fonts/Roboto-Bold.ttf deleted file mode 100644 index a355c27cde02..000000000000 Binary files a/fonts/Roboto-Bold.ttf and /dev/null differ diff --git a/fonts/Roboto-BoldItalic.ttf b/fonts/Roboto-BoldItalic.ttf deleted file mode 100644 index 3c9a7a37361b..000000000000 Binary files a/fonts/Roboto-BoldItalic.ttf and /dev/null differ diff --git a/fonts/Roboto-Italic.ttf b/fonts/Roboto-Italic.ttf deleted file mode 100644 index ff6046d5bfa7..000000000000 Binary files a/fonts/Roboto-Italic.ttf and /dev/null differ diff --git a/fonts/Roboto-Light.ttf b/fonts/Roboto-Light.ttf deleted file mode 100644 index 94c6bcc67e09..000000000000 Binary files a/fonts/Roboto-Light.ttf and /dev/null differ diff --git a/fonts/Roboto-LightItalic.ttf b/fonts/Roboto-LightItalic.ttf deleted file mode 100644 index 04cc00230202..000000000000 Binary files a/fonts/Roboto-LightItalic.ttf and /dev/null differ diff --git a/fonts/Roboto-Medium.ttf b/fonts/Roboto-Medium.ttf deleted file mode 100644 index 39c63d746179..000000000000 Binary files a/fonts/Roboto-Medium.ttf and /dev/null differ diff --git a/fonts/Roboto-MediumItalic.ttf b/fonts/Roboto-MediumItalic.ttf deleted file mode 100644 index dc743f0a66cf..000000000000 Binary files a/fonts/Roboto-MediumItalic.ttf and /dev/null differ diff --git a/fonts/Roboto-Regular.ttf b/fonts/Roboto-Regular.ttf deleted file mode 100644 index 8c082c8de090..000000000000 Binary files a/fonts/Roboto-Regular.ttf and /dev/null differ diff --git a/fonts/Roboto-Thin.ttf b/fonts/Roboto-Thin.ttf deleted file mode 100644 index d69555029c3e..000000000000 Binary files a/fonts/Roboto-Thin.ttf and /dev/null differ diff --git a/fonts/Roboto-ThinItalic.ttf b/fonts/Roboto-ThinItalic.ttf deleted file mode 100644 index 07172ff666ad..000000000000 Binary files a/fonts/Roboto-ThinItalic.ttf and /dev/null differ diff --git a/fonts/inter-v3.10/Inter-Bold.woff2 b/fonts/inter-v3.10/Inter-Bold.woff2 new file mode 100644 index 000000000000..12a4b2a2723a Binary files /dev/null and b/fonts/inter-v3.10/Inter-Bold.woff2 differ diff --git a/fonts/inter-v3.10/Inter-BoldItalic.woff2 b/fonts/inter-v3.10/Inter-BoldItalic.woff2 new file mode 100644 index 000000000000..559d8e5c4a5b Binary files /dev/null and b/fonts/inter-v3.10/Inter-BoldItalic.woff2 differ diff --git a/fonts/inter-v3.10/Inter-Italic.woff2 b/fonts/inter-v3.10/Inter-Italic.woff2 new file mode 100644 index 000000000000..ca1604bc5897 Binary files /dev/null and b/fonts/inter-v3.10/Inter-Italic.woff2 differ diff --git a/fonts/inter-v3.10/Inter-Regular.woff2 b/fonts/inter-v3.10/Inter-Regular.woff2 new file mode 100644 index 000000000000..9a02e80119ed Binary files /dev/null and b/fonts/inter-v3.10/Inter-Regular.woff2 differ diff --git a/fonts/inter-v3.10/Inter-SemiBold.woff2 b/fonts/inter-v3.10/Inter-SemiBold.woff2 new file mode 100644 index 000000000000..f791594245b8 Binary files /dev/null and b/fonts/inter-v3.10/Inter-SemiBold.woff2 differ diff --git a/fonts/inter-v3.10/Inter-SemiBoldItalic.woff2 b/fonts/inter-v3.10/Inter-SemiBoldItalic.woff2 new file mode 100644 index 000000000000..5695036d1990 Binary files /dev/null and b/fonts/inter-v3.10/Inter-SemiBoldItalic.woff2 differ diff --git a/images/add-caption-24.svg b/images/add-caption-24.svg deleted file mode 100644 index 0154664cbb37..000000000000 --- a/images/add-caption-24.svg +++ /dev/null @@ -1 +0,0 @@ -add-caption-24 \ No newline at end of file diff --git a/images/appstore.svg b/images/appstore.svg deleted file mode 100644 index ac111e597468..000000000000 --- a/images/appstore.svg +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/audio.svg b/images/audio.svg deleted file mode 100644 index 9f81966e0577..000000000000 --- a/images/audio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/back.svg b/images/back.svg deleted file mode 100644 index 4449fbd717f5..000000000000 --- a/images/back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/badge-filled-16.svg b/images/badge-filled-16.svg deleted file mode 100644 index ae9cd05ad153..000000000000 --- a/images/badge-filled-16.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/images/broken-link.svg b/images/broken-link.svg deleted file mode 100644 index 73f3fd05d747..000000000000 --- a/images/broken-link.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - Link/broken-link-16 - Created with Sketch. - - - - - - - \ No newline at end of file diff --git a/images/chat-bubble-outline.svg b/images/chat-bubble-outline.svg deleted file mode 100644 index 50b0dee1d85c..000000000000 --- a/images/chat-bubble-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/chat-bubble.svg b/images/chat-bubble.svg deleted file mode 100644 index d31a0ef5419d..000000000000 --- a/images/chat-bubble.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/check-circle-filled-16.svg b/images/check-circle-filled-16.svg deleted file mode 100644 index 1683ea0bd1eb..000000000000 --- a/images/check-circle-filled-16.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - diff --git a/images/check.svg b/images/check.svg deleted file mode 100644 index e098d569007c..000000000000 --- a/images/check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/chevron-left-12.svg b/images/chevron-left-12.svg deleted file mode 100644 index ae4e9ecf1319..000000000000 --- a/images/chevron-left-12.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/images/chevron-right-12.svg b/images/chevron-right-12.svg deleted file mode 100644 index 9c39ac4436b8..000000000000 --- a/images/chevron-right-12.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/images/clock.svg b/images/clock.svg deleted file mode 100644 index 22127230994c..000000000000 --- a/images/clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/close-circle.svg b/images/close-circle.svg deleted file mode 100644 index 5a37396e21a6..000000000000 --- a/images/close-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/dots-horizontal.svg b/images/dots-horizontal.svg deleted file mode 100644 index 35e5a0ab66ca..000000000000 --- a/images/dots-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/down.svg b/images/down.svg deleted file mode 100644 index 090f09cadd7d..000000000000 --- a/images/down.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/images/download.svg b/images/download.svg deleted file mode 100644 index fd25ff70cdac..000000000000 --- a/images/download.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Icons/Download/download-24 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/ellipsis.svg b/images/ellipsis.svg deleted file mode 100644 index f0608e299c48..000000000000 --- a/images/ellipsis.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Icons/Ellipses/ellipses-24 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/emoji-activity-filled-20.svg b/images/emoji-activity-filled-20.svg deleted file mode 100755 index ac3321b16449..000000000000 --- a/images/emoji-activity-filled-20.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/images/emoji-activity-outline-20.svg b/images/emoji-activity-outline-20.svg deleted file mode 100755 index 7722401910eb..000000000000 --- a/images/emoji-activity-outline-20.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/images/emoji-animal-filled-20.svg b/images/emoji-animal-filled-20.svg deleted file mode 100644 index 02ae7a75ee3a..000000000000 --- a/images/emoji-animal-filled-20.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/images/emoji-animal-outline-20.svg b/images/emoji-animal-outline-20.svg deleted file mode 100644 index 56ac1af96954..000000000000 --- a/images/emoji-animal-outline-20.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/images/emoji-filled-20.svg b/images/emoji-filled-20.svg deleted file mode 100755 index 807fba9fca30..000000000000 --- a/images/emoji-filled-20.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/images/emoji-flag-filled-20.svg b/images/emoji-flag-filled-20.svg deleted file mode 100644 index 36390d4a8228..000000000000 --- a/images/emoji-flag-filled-20.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/images/emoji-flag-outline-20.svg b/images/emoji-flag-outline-20.svg deleted file mode 100644 index 075e7adc5e09..000000000000 --- a/images/emoji-flag-outline-20.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/images/emoji-food-filled-20.svg b/images/emoji-food-filled-20.svg deleted file mode 100755 index 625beac0d27b..000000000000 --- a/images/emoji-food-filled-20.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/images/emoji-food-outline-20.svg b/images/emoji-food-outline-20.svg deleted file mode 100755 index bf1aca75c40d..000000000000 --- a/images/emoji-food-outline-20.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/images/emoji-outline-20.svg b/images/emoji-outline-20.svg deleted file mode 100755 index 5ae031777a6d..000000000000 --- a/images/emoji-outline-20.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/images/emoji-travel-filled-20.svg b/images/emoji-travel-filled-20.svg deleted file mode 100644 index efeb963faa2b..000000000000 --- a/images/emoji-travel-filled-20.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/images/emoji-travel-outline-20.svg b/images/emoji-travel-outline-20.svg deleted file mode 100644 index 9db6340ff172..000000000000 --- a/images/emoji-travel-outline-20.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/images/error-filled.svg b/images/error-filled.svg deleted file mode 100644 index dc013dd24898..000000000000 --- a/images/error-filled.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Error/error-filled-16 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/error.svg b/images/error.svg deleted file mode 100644 index 6c0264a7c6ca..000000000000 --- a/images/error.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Error/error-20 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/forward.svg b/images/forward.svg deleted file mode 100644 index 0efb0cbc4397..000000000000 --- a/images/forward.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/images/alert-outline.svg b/images/full-screen-flow/alert-outline.svg similarity index 100% rename from images/alert-outline.svg rename to images/full-screen-flow/alert-outline.svg diff --git a/images/android.svg b/images/full-screen-flow/android.svg similarity index 100% rename from images/android.svg rename to images/full-screen-flow/android.svg diff --git a/images/apple.svg b/images/full-screen-flow/apple.svg similarity index 100% rename from images/apple.svg rename to images/full-screen-flow/apple.svg diff --git a/images/full-screen-flow/check-circle-outline.svg b/images/full-screen-flow/check-circle-outline.svg new file mode 100644 index 000000000000..f00955ec9166 --- /dev/null +++ b/images/full-screen-flow/check-circle-outline.svg @@ -0,0 +1,12 @@ + + + + check + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/images/delete.svg b/images/full-screen-flow/delete.svg similarity index 100% rename from images/delete.svg rename to images/full-screen-flow/delete.svg diff --git a/images/folder-outline.svg b/images/full-screen-flow/folder-outline.svg similarity index 100% rename from images/folder-outline.svg rename to images/full-screen-flow/folder-outline.svg diff --git a/images/import.svg b/images/full-screen-flow/import.svg similarity index 100% rename from images/import.svg rename to images/full-screen-flow/import.svg diff --git a/images/lead-pencil.svg b/images/full-screen-flow/lead-pencil.svg similarity index 100% rename from images/lead-pencil.svg rename to images/full-screen-flow/lead-pencil.svg diff --git a/images/sync.svg b/images/full-screen-flow/sync.svg similarity index 100% rename from images/sync.svg rename to images/full-screen-flow/sync.svg diff --git a/images/gear.svg b/images/gear.svg deleted file mode 100644 index 7b0b78f3bb29..000000000000 --- a/images/gear.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Gear/gear-20 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/hourglass_empty.svg b/images/hourglass_empty.svg deleted file mode 100644 index bba751d5c468..000000000000 --- a/images/hourglass_empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/hourglass_full.svg b/images/hourglass_full.svg deleted file mode 100644 index 7d993836f66e..000000000000 --- a/images/hourglass_full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/v2/arrow-down-24.svg b/images/icons/v2/arrow-down-24.svg new file mode 100644 index 000000000000..f165dbee922b --- /dev/null +++ b/images/icons/v2/arrow-down-24.svg @@ -0,0 +1 @@ +arrow-down-24 \ No newline at end of file diff --git a/images/icons/v2/check-24.svg b/images/icons/v2/check-24.svg new file mode 100644 index 000000000000..4e35aa8cf290 --- /dev/null +++ b/images/icons/v2/check-24.svg @@ -0,0 +1 @@ +check-24 \ No newline at end of file diff --git a/images/icons/v2/check-circle-outline-24.svg b/images/icons/v2/check-circle-outline-24.svg new file mode 100644 index 000000000000..4d373b22c1a2 --- /dev/null +++ b/images/icons/v2/check-circle-outline-24.svg @@ -0,0 +1 @@ +check-circle-outline-24 \ No newline at end of file diff --git a/images/icons/v2/check-circle-solid-24.svg b/images/icons/v2/check-circle-solid-24.svg new file mode 100644 index 000000000000..dae8e49ef94f --- /dev/null +++ b/images/icons/v2/check-circle-solid-24.svg @@ -0,0 +1 @@ +check-circle-solid-24 \ No newline at end of file diff --git a/images/icons/v2/chevron-down-16.svg b/images/icons/v2/chevron-down-16.svg new file mode 100644 index 000000000000..420cb2377415 --- /dev/null +++ b/images/icons/v2/chevron-down-16.svg @@ -0,0 +1 @@ +chevron-down-16 \ No newline at end of file diff --git a/images/icons/v2/chevron-left-16.svg b/images/icons/v2/chevron-left-16.svg new file mode 100644 index 000000000000..2524c99a03b5 --- /dev/null +++ b/images/icons/v2/chevron-left-16.svg @@ -0,0 +1 @@ +chevron-left-16 \ No newline at end of file diff --git a/images/icons/v2/chevron-left-24.svg b/images/icons/v2/chevron-left-24.svg new file mode 100644 index 000000000000..aa5148770ff0 --- /dev/null +++ b/images/icons/v2/chevron-left-24.svg @@ -0,0 +1 @@ +chevron-left-24 \ No newline at end of file diff --git a/images/icons/v2/chevron-right-16.svg b/images/icons/v2/chevron-right-16.svg new file mode 100644 index 000000000000..7d51130f6987 --- /dev/null +++ b/images/icons/v2/chevron-right-16.svg @@ -0,0 +1 @@ +chevron-right-16 \ No newline at end of file diff --git a/images/icons/v2/chevron-right-24.svg b/images/icons/v2/chevron-right-24.svg new file mode 100644 index 000000000000..f917e91730a3 --- /dev/null +++ b/images/icons/v2/chevron-right-24.svg @@ -0,0 +1 @@ +chevron-right-24 \ No newline at end of file diff --git a/images/collapse-down.svg b/images/icons/v2/collapse-down-20.svg similarity index 100% rename from images/collapse-down.svg rename to images/icons/v2/collapse-down-20.svg diff --git a/images/icons/v2/emoji-activity-outline-20.svg b/images/icons/v2/emoji-activity-outline-20.svg new file mode 100644 index 000000000000..3ea6011d0802 --- /dev/null +++ b/images/icons/v2/emoji-activity-outline-20.svg @@ -0,0 +1 @@ +emoji-activity-outline-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-activity-solid-20.svg b/images/icons/v2/emoji-activity-solid-20.svg new file mode 100644 index 000000000000..ccc5e7e2e14e --- /dev/null +++ b/images/icons/v2/emoji-activity-solid-20.svg @@ -0,0 +1 @@ +emoji-activity-solid-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-animal-outline-20.svg b/images/icons/v2/emoji-animal-outline-20.svg new file mode 100644 index 000000000000..8ebfe9587bdd --- /dev/null +++ b/images/icons/v2/emoji-animal-outline-20.svg @@ -0,0 +1 @@ +emoji-animal-outline-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-animal-solid-20.svg b/images/icons/v2/emoji-animal-solid-20.svg new file mode 100644 index 000000000000..d31a8878e2ea --- /dev/null +++ b/images/icons/v2/emoji-animal-solid-20.svg @@ -0,0 +1 @@ +emoji-animal-solid-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-flag-outline-20.svg b/images/icons/v2/emoji-flag-outline-20.svg new file mode 100644 index 000000000000..ac0a994b8d74 --- /dev/null +++ b/images/icons/v2/emoji-flag-outline-20.svg @@ -0,0 +1 @@ +emoji-flag-outline-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-flag-solid-20.svg b/images/icons/v2/emoji-flag-solid-20.svg new file mode 100644 index 000000000000..62564dcac3dd --- /dev/null +++ b/images/icons/v2/emoji-flag-solid-20.svg @@ -0,0 +1 @@ +emoji-flag-solid-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-food-outline-20.svg b/images/icons/v2/emoji-food-outline-20.svg new file mode 100644 index 000000000000..411a63ea05d9 --- /dev/null +++ b/images/icons/v2/emoji-food-outline-20.svg @@ -0,0 +1 @@ +emoji-food-outline-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-food-solid-20.svg b/images/icons/v2/emoji-food-solid-20.svg new file mode 100644 index 000000000000..a1515961d692 --- /dev/null +++ b/images/icons/v2/emoji-food-solid-20.svg @@ -0,0 +1 @@ +emoji-food-solid-20 \ No newline at end of file diff --git a/images/emoji-object-outline-20.svg b/images/icons/v2/emoji-object-outline-20.svg similarity index 100% rename from images/emoji-object-outline-20.svg rename to images/icons/v2/emoji-object-outline-20.svg diff --git a/images/emoji-object-filled-20.svg b/images/icons/v2/emoji-object-solid-20.svg similarity index 100% rename from images/emoji-object-filled-20.svg rename to images/icons/v2/emoji-object-solid-20.svg diff --git a/images/icons/v2/emoji-smiley-outline-20.svg b/images/icons/v2/emoji-smiley-outline-20.svg new file mode 100644 index 000000000000..58120b2f8577 --- /dev/null +++ b/images/icons/v2/emoji-smiley-outline-20.svg @@ -0,0 +1 @@ +emoji-smiley-outline-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-smiley-outline-24.svg b/images/icons/v2/emoji-smiley-outline-24.svg new file mode 100644 index 000000000000..f4d5cd15dbbe --- /dev/null +++ b/images/icons/v2/emoji-smiley-outline-24.svg @@ -0,0 +1 @@ +emoji-smiley-outline-24 \ No newline at end of file diff --git a/images/icons/v2/emoji-smiley-solid-20.svg b/images/icons/v2/emoji-smiley-solid-20.svg new file mode 100644 index 000000000000..d23bb61bce9d --- /dev/null +++ b/images/icons/v2/emoji-smiley-solid-20.svg @@ -0,0 +1 @@ +emoji-smiley-solid-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-smiley-solid-24.svg b/images/icons/v2/emoji-smiley-solid-24.svg new file mode 100644 index 000000000000..945549c7bfdb --- /dev/null +++ b/images/icons/v2/emoji-smiley-solid-24.svg @@ -0,0 +1 @@ +emoji-smiley-solid-24 \ No newline at end of file diff --git a/images/emoji-symbol-outline-20.svg b/images/icons/v2/emoji-symbol-outline-20.svg similarity index 100% rename from images/emoji-symbol-outline-20.svg rename to images/icons/v2/emoji-symbol-outline-20.svg diff --git a/images/emoji-symbol-filled-20.svg b/images/icons/v2/emoji-symbol-solid-20.svg similarity index 100% rename from images/emoji-symbol-filled-20.svg rename to images/icons/v2/emoji-symbol-solid-20.svg diff --git a/images/icons/v2/emoji-travel-outline-20.svg b/images/icons/v2/emoji-travel-outline-20.svg new file mode 100644 index 000000000000..3a9ab17bd453 --- /dev/null +++ b/images/icons/v2/emoji-travel-outline-20.svg @@ -0,0 +1 @@ +emoji-travel-outline-20 \ No newline at end of file diff --git a/images/icons/v2/emoji-travel-solid-20.svg b/images/icons/v2/emoji-travel-solid-20.svg new file mode 100644 index 000000000000..51e2bfdbe6eb --- /dev/null +++ b/images/icons/v2/emoji-travel-solid-20.svg @@ -0,0 +1 @@ +emoji-travel-solid-20 \ No newline at end of file diff --git a/images/icons/v2/error-outline-12.svg b/images/icons/v2/error-outline-12.svg new file mode 100644 index 000000000000..33736830fa42 --- /dev/null +++ b/images/icons/v2/error-outline-12.svg @@ -0,0 +1 @@ +error-outline-12 \ No newline at end of file diff --git a/images/icons/v2/error-outline-24.svg b/images/icons/v2/error-outline-24.svg new file mode 100644 index 000000000000..4eaa871dfab4 --- /dev/null +++ b/images/icons/v2/error-outline-24.svg @@ -0,0 +1 @@ +error-outline-24 \ No newline at end of file diff --git a/images/icons/v2/error-solid-12.svg b/images/icons/v2/error-solid-12.svg new file mode 100644 index 000000000000..c48275c2b914 --- /dev/null +++ b/images/icons/v2/error-solid-12.svg @@ -0,0 +1 @@ +error-solid-12 \ No newline at end of file diff --git a/images/icons/v2/error-solid-24.svg b/images/icons/v2/error-solid-24.svg new file mode 100644 index 000000000000..5cafa8fd7eaf --- /dev/null +++ b/images/icons/v2/error-solid-24.svg @@ -0,0 +1 @@ +error-solid-24 \ No newline at end of file diff --git a/images/expand-up.svg b/images/icons/v2/expand-up-20.svg similarity index 100% rename from images/expand-up.svg rename to images/icons/v2/expand-up-20.svg diff --git a/images/icons/v2/link-broken-16.svg b/images/icons/v2/link-broken-16.svg new file mode 100644 index 000000000000..2e4bd3160a4d --- /dev/null +++ b/images/icons/v2/link-broken-16.svg @@ -0,0 +1 @@ +link-broken-16 \ No newline at end of file diff --git a/images/icons/v2/message-outline-24.svg b/images/icons/v2/message-outline-24.svg new file mode 100644 index 000000000000..fb84c1ff2e9f --- /dev/null +++ b/images/icons/v2/message-outline-24.svg @@ -0,0 +1 @@ +message-outline-24 \ No newline at end of file diff --git a/images/icons/v2/message-solid-24.svg b/images/icons/v2/message-solid-24.svg new file mode 100644 index 000000000000..1b090753d7c7 --- /dev/null +++ b/images/icons/v2/message-solid-24.svg @@ -0,0 +1 @@ +message-solid-24 \ No newline at end of file diff --git a/images/icons/v2/mic-outline-24.svg b/images/icons/v2/mic-outline-24.svg new file mode 100644 index 000000000000..b6c702fc124f --- /dev/null +++ b/images/icons/v2/mic-outline-24.svg @@ -0,0 +1 @@ +mic-outline-24 \ No newline at end of file diff --git a/images/icons/v2/mic-solid-24.svg b/images/icons/v2/mic-solid-24.svg new file mode 100644 index 000000000000..9d6f76307f52 --- /dev/null +++ b/images/icons/v2/mic-solid-24.svg @@ -0,0 +1 @@ +mic-solid-24 \ No newline at end of file diff --git a/images/icons/v2/more-horiz-24.svg b/images/icons/v2/more-horiz-24.svg new file mode 100644 index 000000000000..e0680f6b9026 --- /dev/null +++ b/images/icons/v2/more-horiz-24.svg @@ -0,0 +1 @@ +more-horiz-24 \ No newline at end of file diff --git a/images/icons/v2/open-24.svg b/images/icons/v2/open-24.svg new file mode 100644 index 000000000000..bff343e2afcf --- /dev/null +++ b/images/icons/v2/open-24.svg @@ -0,0 +1 @@ +open-24 \ No newline at end of file diff --git a/images/icons/v2/play-outline-20.svg b/images/icons/v2/play-outline-20.svg new file mode 100644 index 000000000000..9dacad460681 --- /dev/null +++ b/images/icons/v2/play-outline-20.svg @@ -0,0 +1 @@ +play-outline-20 \ No newline at end of file diff --git a/images/icons/v2/play-outline-24.svg b/images/icons/v2/play-outline-24.svg new file mode 100644 index 000000000000..4733083ec341 --- /dev/null +++ b/images/icons/v2/play-outline-24.svg @@ -0,0 +1 @@ +play-outline-24 \ No newline at end of file diff --git a/images/icons/v2/play-solid-24.svg b/images/icons/v2/play-solid-24.svg new file mode 100644 index 000000000000..0a5d319bf618 --- /dev/null +++ b/images/icons/v2/play-solid-24.svg @@ -0,0 +1 @@ +play-solid-24 \ No newline at end of file diff --git a/images/icons/v2/plus-20.svg b/images/icons/v2/plus-20.svg new file mode 100644 index 000000000000..9c634a9b5b3a --- /dev/null +++ b/images/icons/v2/plus-20.svg @@ -0,0 +1 @@ +plus-20 \ No newline at end of file diff --git a/images/icons/v2/plus-24.svg b/images/icons/v2/plus-24.svg new file mode 100644 index 000000000000..4749a35a47fc --- /dev/null +++ b/images/icons/v2/plus-24.svg @@ -0,0 +1 @@ +plus-24 \ No newline at end of file diff --git a/images/icons/v2/profile-circle-outline-24.svg b/images/icons/v2/profile-circle-outline-24.svg new file mode 100644 index 000000000000..51a5aa4101fa --- /dev/null +++ b/images/icons/v2/profile-circle-outline-24.svg @@ -0,0 +1 @@ +profile-circle-outline-24 \ No newline at end of file diff --git a/images/icons/v2/profile-circle-solid-24.svg b/images/icons/v2/profile-circle-solid-24.svg new file mode 100644 index 000000000000..354d367c8717 --- /dev/null +++ b/images/icons/v2/profile-circle-solid-24.svg @@ -0,0 +1 @@ +profile-circle-solid-24 \ No newline at end of file diff --git a/images/icons/v2/recent-outline-20.svg b/images/icons/v2/recent-outline-20.svg new file mode 100644 index 000000000000..f94905cf401f --- /dev/null +++ b/images/icons/v2/recent-outline-20.svg @@ -0,0 +1 @@ +recent-outline-20 \ No newline at end of file diff --git a/images/icons/v2/recent-solid-20.svg b/images/icons/v2/recent-solid-20.svg new file mode 100644 index 000000000000..822ccf504113 --- /dev/null +++ b/images/icons/v2/recent-solid-20.svg @@ -0,0 +1 @@ +recent-solid-20 \ No newline at end of file diff --git a/images/icons/v2/reply-outline-24.svg b/images/icons/v2/reply-outline-24.svg new file mode 100644 index 000000000000..072e68452000 --- /dev/null +++ b/images/icons/v2/reply-outline-24.svg @@ -0,0 +1 @@ +reply-outline-24 \ No newline at end of file diff --git a/images/icons/v2/reply-solid-24.svg b/images/icons/v2/reply-solid-24.svg new file mode 100644 index 000000000000..d3e48e5df87a --- /dev/null +++ b/images/icons/v2/reply-solid-24.svg @@ -0,0 +1 @@ +reply-solid-24 \ No newline at end of file diff --git a/images/icons/v2/safety-number-outline-24.svg b/images/icons/v2/safety-number-outline-24.svg new file mode 100644 index 000000000000..8eba9d06e41c --- /dev/null +++ b/images/icons/v2/safety-number-outline-24.svg @@ -0,0 +1 @@ +safety-number-outline-24 \ No newline at end of file diff --git a/images/icons/v2/safety-number-solid-24.svg b/images/icons/v2/safety-number-solid-24.svg new file mode 100644 index 000000000000..593c156cd326 --- /dev/null +++ b/images/icons/v2/safety-number-solid-24.svg @@ -0,0 +1 @@ +safety-number-solid-24 \ No newline at end of file diff --git a/images/icons/v2/save-outline-24.svg b/images/icons/v2/save-outline-24.svg new file mode 100644 index 000000000000..f149d3609711 --- /dev/null +++ b/images/icons/v2/save-outline-24.svg @@ -0,0 +1 @@ +save-outline-24 \ No newline at end of file diff --git a/images/icons/v2/save-solid-24.svg b/images/icons/v2/save-solid-24.svg new file mode 100644 index 000000000000..9ac14c0c9bfa --- /dev/null +++ b/images/icons/v2/save-solid-24.svg @@ -0,0 +1 @@ +save-solid-24 \ No newline at end of file diff --git a/images/icons/v2/search-16.svg b/images/icons/v2/search-16.svg new file mode 100644 index 000000000000..e8ae1640480d --- /dev/null +++ b/images/icons/v2/search-16.svg @@ -0,0 +1 @@ +search-16 \ No newline at end of file diff --git a/images/icons/v2/search-24.svg b/images/icons/v2/search-24.svg new file mode 100644 index 000000000000..84c959286628 --- /dev/null +++ b/images/icons/v2/search-24.svg @@ -0,0 +1 @@ +search-24 \ No newline at end of file diff --git a/images/icons/v2/send-24.svg b/images/icons/v2/send-24.svg new file mode 100644 index 000000000000..07496256810c --- /dev/null +++ b/images/icons/v2/send-24.svg @@ -0,0 +1 @@ +send-24 \ No newline at end of file diff --git a/images/icons/v2/sticker-outline-24.svg b/images/icons/v2/sticker-outline-24.svg new file mode 100644 index 000000000000..e5a7bd483be5 --- /dev/null +++ b/images/icons/v2/sticker-outline-24.svg @@ -0,0 +1 @@ +sticker-outline-24 \ No newline at end of file diff --git a/images/icons/v2/sticker-solid-24.svg b/images/icons/v2/sticker-solid-24.svg new file mode 100644 index 000000000000..1d27828f5015 --- /dev/null +++ b/images/icons/v2/sticker-solid-24.svg @@ -0,0 +1 @@ +sticker-solid-24 \ No newline at end of file diff --git a/images/icons/v2/timer-00-12.svg b/images/icons/v2/timer-00-12.svg new file mode 100644 index 000000000000..f73171a5f1fd --- /dev/null +++ b/images/icons/v2/timer-00-12.svg @@ -0,0 +1 @@ +timer-00-12 \ No newline at end of file diff --git a/images/icons/v2/timer-05-12.svg b/images/icons/v2/timer-05-12.svg new file mode 100644 index 000000000000..537a736ae735 --- /dev/null +++ b/images/icons/v2/timer-05-12.svg @@ -0,0 +1 @@ +timer-05-12 \ No newline at end of file diff --git a/images/icons/v2/timer-10-12.svg b/images/icons/v2/timer-10-12.svg new file mode 100644 index 000000000000..7e9287380e34 --- /dev/null +++ b/images/icons/v2/timer-10-12.svg @@ -0,0 +1 @@ +timer-10-12 \ No newline at end of file diff --git a/images/icons/v2/timer-15-12.svg b/images/icons/v2/timer-15-12.svg new file mode 100644 index 000000000000..a93963b5784b --- /dev/null +++ b/images/icons/v2/timer-15-12.svg @@ -0,0 +1 @@ +timer-15-12 \ No newline at end of file diff --git a/images/icons/v2/timer-20-12.svg b/images/icons/v2/timer-20-12.svg new file mode 100644 index 000000000000..1c84e8ec4611 --- /dev/null +++ b/images/icons/v2/timer-20-12.svg @@ -0,0 +1 @@ +timer-20-12 \ No newline at end of file diff --git a/images/icons/v2/timer-24.svg b/images/icons/v2/timer-24.svg new file mode 100644 index 000000000000..d9bd965c0230 --- /dev/null +++ b/images/icons/v2/timer-24.svg @@ -0,0 +1 @@ +timer-24 \ No newline at end of file diff --git a/images/icons/v2/timer-25-12.svg b/images/icons/v2/timer-25-12.svg new file mode 100644 index 000000000000..07370afce780 --- /dev/null +++ b/images/icons/v2/timer-25-12.svg @@ -0,0 +1 @@ +timer-25-12 \ No newline at end of file diff --git a/images/icons/v2/timer-30-12.svg b/images/icons/v2/timer-30-12.svg new file mode 100644 index 000000000000..93b6c11627ac --- /dev/null +++ b/images/icons/v2/timer-30-12.svg @@ -0,0 +1 @@ +timer-30-12 \ No newline at end of file diff --git a/images/icons/v2/timer-35-12.svg b/images/icons/v2/timer-35-12.svg new file mode 100644 index 000000000000..143fb225ee47 --- /dev/null +++ b/images/icons/v2/timer-35-12.svg @@ -0,0 +1 @@ +timer-35-12 \ No newline at end of file diff --git a/images/icons/v2/timer-40-12.svg b/images/icons/v2/timer-40-12.svg new file mode 100644 index 000000000000..205dbe469185 --- /dev/null +++ b/images/icons/v2/timer-40-12.svg @@ -0,0 +1 @@ +timer-40-12 \ No newline at end of file diff --git a/images/icons/v2/timer-45-12.svg b/images/icons/v2/timer-45-12.svg new file mode 100644 index 000000000000..7839099d558c --- /dev/null +++ b/images/icons/v2/timer-45-12.svg @@ -0,0 +1 @@ +timer-45-12 \ No newline at end of file diff --git a/images/icons/v2/timer-50-12.svg b/images/icons/v2/timer-50-12.svg new file mode 100644 index 000000000000..b64dfb6cf807 --- /dev/null +++ b/images/icons/v2/timer-50-12.svg @@ -0,0 +1 @@ +timer-50-12 \ No newline at end of file diff --git a/images/icons/v2/timer-55-12.svg b/images/icons/v2/timer-55-12.svg new file mode 100644 index 000000000000..18a0074d02e7 --- /dev/null +++ b/images/icons/v2/timer-55-12.svg @@ -0,0 +1 @@ +timer-55-12 \ No newline at end of file diff --git a/images/icons/v2/timer-60-12.svg b/images/icons/v2/timer-60-12.svg new file mode 100644 index 000000000000..454885e4ee67 --- /dev/null +++ b/images/icons/v2/timer-60-12.svg @@ -0,0 +1 @@ +timer-60-12 \ No newline at end of file diff --git a/images/icons/v2/timer-disabled-24.svg b/images/icons/v2/timer-disabled-24.svg new file mode 100644 index 000000000000..32d575531e8d --- /dev/null +++ b/images/icons/v2/timer-disabled-24.svg @@ -0,0 +1 @@ +timer-disabled-24 \ No newline at end of file diff --git a/images/icons/v2/x-24.svg b/images/icons/v2/x-24.svg new file mode 100644 index 000000000000..c018fae6b880 --- /dev/null +++ b/images/icons/v2/x-24.svg @@ -0,0 +1 @@ +x-24 \ No newline at end of file diff --git a/images/menu.svg b/images/menu.svg deleted file mode 100644 index c696d4c8e0d8..000000000000 --- a/images/menu.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/images/microphone.svg b/images/microphone.svg deleted file mode 100644 index 553bf21a3c5d..000000000000 --- a/images/microphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/more-h-24.svg b/images/more-h-24.svg deleted file mode 100644 index ecd45dec7774..000000000000 --- a/images/more-h-24.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/images/open_link.svg b/images/open_link.svg deleted file mode 100644 index 0538a101f8a3..000000000000 --- a/images/open_link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/paperclip.svg b/images/paperclip.svg deleted file mode 100644 index 357e2bf29ffe..000000000000 --- a/images/paperclip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/play-filled-24.svg b/images/play-filled-24.svg deleted file mode 100644 index 1ef1ec1cb66a..000000000000 --- a/images/play-filled-24.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/images/play-outline-24.svg b/images/play-outline-24.svg deleted file mode 100644 index 601da37c7d2e..000000000000 --- a/images/play-outline-24.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/images/play.svg b/images/play.svg deleted file mode 100644 index 87a70f2d1c64..000000000000 --- a/images/play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/playstore.png b/images/playstore.png deleted file mode 100644 index 9a50affda395..000000000000 Binary files a/images/playstore.png and /dev/null differ diff --git a/images/plus-20.svg b/images/plus-20.svg deleted file mode 100644 index 340d982d64d0..000000000000 --- a/images/plus-20.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/images/plus-36.svg b/images/plus-36.svg deleted file mode 100644 index a2a8920a4544..000000000000 --- a/images/plus-36.svg +++ /dev/null @@ -1 +0,0 @@ -plus-36 \ No newline at end of file diff --git a/images/profile-solid-16.svg b/images/profile-solid-16.svg deleted file mode 100644 index afc0df268679..000000000000 --- a/images/profile-solid-16.svg +++ /dev/null @@ -1 +0,0 @@ -profile-solid-16 \ No newline at end of file diff --git a/images/recent-outline-20.svg b/images/recent-outline-20.svg deleted file mode 100644 index 3b10dd6f0732..000000000000 --- a/images/recent-outline-20.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/images/recent-outline.svg b/images/recent-outline.svg deleted file mode 100644 index 24c26edab9d0..000000000000 --- a/images/recent-outline.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/images/reply.svg b/images/reply.svg deleted file mode 100644 index a385ea50ed15..000000000000 --- a/images/reply.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Icons/Reply/reply-24 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/save.svg b/images/save.svg deleted file mode 100644 index 5bd86ad8fb48..000000000000 --- a/images/save.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/images/search-24.svg b/images/search-24.svg deleted file mode 100644 index a486b9b43be6..000000000000 --- a/images/search-24.svg +++ /dev/null @@ -1 +0,0 @@ -search-24 \ No newline at end of file diff --git a/images/search.svg b/images/search.svg deleted file mode 100644 index 1704b4082bb5..000000000000 --- a/images/search.svg +++ /dev/null @@ -1 +0,0 @@ -search-16 \ No newline at end of file diff --git a/images/send.svg b/images/send.svg deleted file mode 100644 index e9399beeaac5..000000000000 --- a/images/send.svg +++ /dev/null @@ -1 +0,0 @@ -send-solid-24 \ No newline at end of file diff --git a/images/shield.svg b/images/shield.svg deleted file mode 100644 index f855309cd449..000000000000 --- a/images/shield.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/signal-laptop.png b/images/signal-laptop.png deleted file mode 100644 index 9406321a7fbb..000000000000 Binary files a/images/signal-laptop.png and /dev/null differ diff --git a/images/signal-phone.png b/images/signal-phone.png deleted file mode 100644 index 21a02887b4e8..000000000000 Binary files a/images/signal-phone.png and /dev/null differ diff --git a/images/smile.svg b/images/smile.svg deleted file mode 100644 index 71856b2304f0..000000000000 --- a/images/smile.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/images/sticker-filled.svg b/images/sticker-filled.svg deleted file mode 100644 index b647a4138a9b..000000000000 --- a/images/sticker-filled.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/images/timer-00.svg b/images/timer-00.svg deleted file mode 100644 index f35deed54713..000000000000 --- a/images/timer-00.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 00/timer00_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-05.svg b/images/timer-05.svg deleted file mode 100644 index e65f1daa18a5..000000000000 --- a/images/timer-05.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 05/timer05_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-10.svg b/images/timer-10.svg deleted file mode 100644 index d60a19ecff32..000000000000 --- a/images/timer-10.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 10/timer10_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-15.svg b/images/timer-15.svg deleted file mode 100644 index 91091c24d87e..000000000000 --- a/images/timer-15.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 15/timer15_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-20.svg b/images/timer-20.svg deleted file mode 100644 index 26057b7ed6d4..000000000000 --- a/images/timer-20.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 20/timer20_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-25.svg b/images/timer-25.svg deleted file mode 100644 index 9bda6eef7d0d..000000000000 --- a/images/timer-25.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 25/timer25_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-30.svg b/images/timer-30.svg deleted file mode 100644 index d87487163395..000000000000 --- a/images/timer-30.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 30/timer30_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-35.svg b/images/timer-35.svg deleted file mode 100644 index 0bf63fc86d0b..000000000000 --- a/images/timer-35.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 35/timer35_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-40.svg b/images/timer-40.svg deleted file mode 100644 index 7dbdfd16c9e5..000000000000 --- a/images/timer-40.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 40/timer40_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-45.svg b/images/timer-45.svg deleted file mode 100644 index 4fa786352abe..000000000000 --- a/images/timer-45.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 45/timer45_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-50.svg b/images/timer-50.svg deleted file mode 100644 index 2b5a00f32cf9..000000000000 --- a/images/timer-50.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Icons/Timer 50/timer50_12 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/images/timer-55.svg b/images/timer-55.svg deleted file mode 100644 index 6db8275c2171..000000000000 --- a/images/timer-55.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 55/timer55_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-60.svg b/images/timer-60.svg deleted file mode 100644 index edcbd5e75fef..000000000000 --- a/images/timer-60.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Icons/Timer 60/timer60_12 - Created with Sketch. - - - - - \ No newline at end of file diff --git a/images/timer-disabled.svg b/images/timer-disabled.svg deleted file mode 100644 index 85110fb8b5e2..000000000000 --- a/images/timer-disabled.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Timer/timer-disabled-24 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/timer.svg b/images/timer.svg deleted file mode 100644 index d9fd6b29e631..000000000000 --- a/images/timer.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/images/verified-check.svg b/images/verified-check.svg deleted file mode 100644 index ce98e1184bd8..000000000000 --- a/images/verified-check.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/images/video.svg b/images/video.svg deleted file mode 100644 index 3bd918961334..000000000000 --- a/images/video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/voice.svg b/images/voice.svg deleted file mode 100644 index 0ada9d14569f..000000000000 --- a/images/voice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/warning.svg b/images/warning.svg deleted file mode 100644 index bc8d6399fe11..000000000000 --- a/images/warning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/x-16.svg b/images/x-16.svg deleted file mode 100644 index 00c43c414604..000000000000 --- a/images/x-16.svg +++ /dev/null @@ -1 +0,0 @@ -x-16 diff --git a/images/x.svg b/images/x.svg deleted file mode 100644 index 9166cbe37f97..000000000000 --- a/images/x.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/images/x_white.svg b/images/x_white.svg deleted file mode 100644 index ad2cd49907b0..000000000000 --- a/images/x_white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/js/background.js b/js/background.js index 6275bc6f43f4..1e38d5b27327 100644 --- a/js/background.js +++ b/js/background.js @@ -102,7 +102,7 @@ window.isActive = () => { const now = Date.now(); - return now <= activeTimestamp + ACTIVE_TIMEOUT; + return window.isFocused() && now <= activeTimestamp + ACTIVE_TIMEOUT; }; window.registerForActive = handler => activeHandlers.push(handler); window.unregisterForActive = handler => { @@ -110,91 +110,16 @@ }; // Load these images now to ensure that they don't flicker on first use - const images = []; + window.preloadedImages = []; function preload(list) { for (let index = 0, max = list.length; index < max; index += 1) { const image = new Image(); image.src = `./images/${list[index]}`; - images.push(image); + window.preloadedImages.push(image); } } - preload([ - 'alert-outline.svg', - 'android.svg', - 'apple.svg', - 'appstore.svg', - 'audio.svg', - 'back.svg', - 'chat-bubble-outline.svg', - 'chat-bubble.svg', - 'check-circle-outline.svg', - 'check.svg', - 'clock.svg', - 'close-circle.svg', - 'delete.svg', - 'dots-horizontal.svg', - 'double-check.svg', - 'down.svg', - 'download.svg', - 'ellipsis.svg', - 'error.svg', - 'error_red.svg', - 'file-gradient.svg', - 'file.svg', - 'folder-outline.svg', - 'forward.svg', - 'gear.svg', - 'group_default.png', - 'hourglass_empty.svg', - 'hourglass_full.svg', - 'icon_1024.png', - 'icon_128.png', - 'icon_16.png', - 'icon_250.png', - 'icon_256.png', - 'icon_32.png', - 'icon_48.png', - 'image.svg', - 'import.svg', - 'lead-pencil.svg', - 'menu.svg', - 'microphone.svg', - 'movie.svg', - 'open_link.svg', - 'paperclip.svg', - 'play.svg', - 'playstore.png', - 'read.svg', - 'reply.svg', - 'save.svg', - 'search.svg', - 'sending.svg', - 'shield.svg', - 'signal-laptop.png', - 'signal-phone.png', - 'smile.svg', - 'sync.svg', - 'timer-00.svg', - 'timer-05.svg', - 'timer-10.svg', - 'timer-15.svg', - 'timer-20.svg', - 'timer-25.svg', - 'timer-30.svg', - 'timer-35.svg', - 'timer-40.svg', - 'timer-45.svg', - 'timer-50.svg', - 'timer-55.svg', - 'timer-60.svg', - 'timer.svg', - 'verified-check.svg', - 'video.svg', - 'voice.svg', - 'warning.svg', - 'x.svg', - 'x_white.svg', - ]); + const builtInImages = await window.getBuiltInImages(); + preload(builtInImages); // We add this to window here because the default Node context is erased at the end // of preload.js processing diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index 42dcafec3b54..259996faedd9 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -918,11 +918,29 @@ }); const onSave = caption => { - // eslint-disable-next-line no-param-reassign - attachment.caption = caption; + this.model.set({ + draftAttachments: this.model.get('draftAttachments').map(item => { + if ( + (item.path && item.path === attachment.path) || + (item.screenshotPath && + item.screenshotPath === attachment.screenshotPath) + ) { + return { + ...attachment, + caption, + }; + } + + return item; + }), + draftChanged: true, + }); + this.captionEditorView.remove(); Signal.Backbone.Views.Lightbox.hide(); - this.attachmentListView.update(this.getPropsForAttachmentList()); + + this.updateAttachmentsView(); + this.saveModel(); }; this.captionEditorView = new Whisper.ReactWrapperView({ @@ -1041,7 +1059,7 @@ } return { - ..._.pick(attachment, ['contentType', 'fileName', 'size']), + ..._.pick(attachment, ['contentType', 'fileName', 'size', 'caption']), data, }; }, @@ -1253,7 +1271,7 @@ async handleImageAttachment(file) { if (MIME.isJPEG(file.type)) { const rotatedDataUrl = await window.autoOrientImage(file); - const rotatedBlob = VisualAttachment.dataURLToBlobSync(rotatedDataUrl); + const rotatedBlob = window.dataURLToBlobSync(rotatedDataUrl); const { contentType, file: resizedBlob, @@ -2107,7 +2125,7 @@ className: 'contact-detail-pane panel', props: { contact, - signalAccount, + hasSignalAccount: Boolean(signalAccount), onSendMessage: () => { if (signalAccount) { this.openConversation(signalAccount); diff --git a/main.js b/main.js index bb864eafcaa6..10cac1a842bb 100644 --- a/main.js +++ b/main.js @@ -527,7 +527,7 @@ async function showSettingsWindow() { resizable: false, title: locale.messages.signalDesktopPreferences.message, autoHideMenuBar: true, - backgroundColor: '#FFFFFF', + backgroundColor: '#2090EA', show: false, modal: true, vibrancy: 'appearance-based', @@ -571,9 +571,9 @@ async function showDebugLogWindow() { width: Math.max(size[0] - 100, MIN_WIDTH), height: Math.max(size[1] - 100, MIN_HEIGHT), resizable: false, - title: locale.messages.signalDesktopPreferences.message, + title: locale.messages.debugLog.message, autoHideMenuBar: true, - backgroundColor: '#FFFFFF', + backgroundColor: '#2090EA', show: false, modal: true, vibrancy: 'appearance-based', @@ -620,9 +620,9 @@ async function showPermissionsPopupWindow() { width: Math.min(400, size[0]), height: Math.min(150, size[1]), resizable: false, - title: locale.messages.signalDesktopPreferences.message, + title: locale.messages.allowAccess.message, autoHideMenuBar: true, - backgroundColor: '#FFFFFF', + backgroundColor: '#2090EA', show: false, modal: true, vibrancy: 'appearance-based', @@ -1021,6 +1021,19 @@ ipc.on('delete-all-data', () => { } }); +ipc.on('get-built-in-images', async () => { + try { + const images = await attachments.getBuiltInImages(); + mainWindow.webContents.send('get-success-built-in-images', null, images); + } catch (error) { + if (mainWindow && mainWindow.webContents) { + mainWindow.webContents.send('get-success-built-in-images', error.message); + } else { + console.error('Error handling get-built-in-images:', error.stack); + } + } +}); + function getDataFromMainWindow(name, callback) { ipc.once(`get-success-${name}`, (_event, error, value) => callback(error, value) diff --git a/package.json b/package.json index 88a6718ef3b2..bed1a095712c 100644 --- a/package.json +++ b/package.json @@ -278,7 +278,6 @@ "ts/*.js", "stylesheets/*.css", "!js/register.js", - "!js/views/standalone_registration_view.js", "app/*", "preload.js", "about_preload.js", @@ -287,7 +286,7 @@ "debug_log_preload.js", "main.js", "images/**", - "fonts/*", + "fonts/**", "build/assets", "node_modules/**", "!node_modules/emoji-datasource/emoji_pretty.json", diff --git a/preload.js b/preload.js index 8e350791bd86..a29be114041b 100644 --- a/preload.js +++ b/preload.js @@ -10,6 +10,9 @@ const { remote } = electron; const { app } = remote; const { systemPreferences } = remote.require('electron'); +const browserWindow = remote.getCurrentWindow(); +window.isFocused = () => browserWindow.isFocused(); + // Waiting for clients to implement changes on receive side window.ENABLE_STICKER_SEND = true; window.TIMESTAMP_VALIDATION = false; @@ -157,7 +160,7 @@ window.getMediaPermissions = () => new Promise((resolve, reject) => { ipc.once('get-success-media-permissions', (_event, error, value) => { if (error) { - return reject(error); + return reject(new Error(error)); } return resolve(value); @@ -165,6 +168,18 @@ window.getMediaPermissions = () => ipc.send('get-media-permissions'); }); +window.getBuiltInImages = () => + new Promise((resolve, reject) => { + ipc.once('get-success-built-in-images', (_event, error, value) => { + if (error) { + return reject(new Error(error)); + } + + return resolve(value); + }); + ipc.send('get-built-in-images'); + }); + installGetter('is-primary', 'isPrimary'); installGetter('sync-request', 'getSyncRequest'); installGetter('sync-time', 'getLastSyncTime'); diff --git a/stylesheets/_conversation.scss b/stylesheets/_conversation.scss index 8428421e85d6..8685df43d581 100644 --- a/stylesheets/_conversation.scss +++ b/stylesheets/_conversation.scss @@ -13,13 +13,20 @@ } .conversation { - background-color: $color-white; position: absolute; top: 0; right: 0; left: 0; bottom: 0; + @include light-theme { + background-color: $color-white; + } + + @include dark-theme { + background-color: $color-gray-95; + } + .panel { height: calc(100% - #{$header-height}); overflow-y: scroll; @@ -102,7 +109,13 @@ } .discussion-container { - background-color: $color-white; + @include light-theme { + background-color: $color-white; + } + + @include dark-theme { + background-color: $color-gray-95; + } } .key-verification { @@ -119,10 +132,26 @@ display: inline-block; &.verified { - @include color-svg('../images/verified-check.svg', $color-light-90); + @include light-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-95); + } + @include dark-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-02); + } } &.shield { - @include color-svg('../images/shield.svg', $color-light-90); + @include light-theme { + @include color-svg( + '../images/icons/v2/safety-number-outline-24.svg', + $color-gray-95 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/safety-number-solid-24.svg', + $color-gray-02 + ); + } } } @@ -136,16 +165,25 @@ padding: 10px; margin: 20px auto 20px auto; width: 16em; - background: $grey_l; - border: solid 1px $grey_l2; - border-radius: $border-radius; + border-radius: 5px; + + @include light-theme { + background: $color-gray-02; + border: solid 1px $color-gray-15; + } + + @include dark-theme { + color: $color-gray-02; + background: $color-gray-90; + border: solid 1px $color-gray-45; + } } .placeholder { font-weight: bold; } .qr { border-radius: 200px; - border: solid 1px $grey_l2; + border: solid 1px $color-gray-15; width: 150px; height: 150px; text-align: center; @@ -186,10 +224,37 @@ padding-bottom: 40px; } -.bottom-bar .module-quote { - margin: 0; +.bottom-bar { + .module-quote { + margin: 0; - border-left-style: none; + border-left-style: none; + @include ios-theme { + background-color: $color-signal-blue-alpha-25; + border-left-color: $color-signal-blue; + } + } + + @include ios-dark-theme { + .module-quote__primary__author { + color: $color-gray-05; + } + + .module-quote__primary__type-label { + color: $color-gray-05; + } + + .module-quote__generic-file__text { + color: $color-gray-05; + } + + .module-quote__primary__text { + color: $color-gray-05; + a { + color: $color-gray-05; + } + } + } } // We need to use the wrapper because the conversation view calculates the height of all @@ -214,38 +279,17 @@ form.active { textarea { - border: solid 1px $blue; + border: solid 1px $color-signal-blue; } } form.send { margin-bottom: 0px; - background: $color-white; - - &.video-attachment { - .image-container { - position: relative; - } - - .outer { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - - text-align: center; - display: flex; - align-items: center; - justify-content: center; - - .play.icon { - height: 30px; - width: 30px; - - @include color-svg('../images/play.svg', white); - } - } + @include light-theme { + background: $color-white; + } + @include dark-theme { + background-color: $color-gray-95; } } @@ -269,14 +313,25 @@ margin-top: 3px; margin-bottom: 6px; border-radius: 20px; - background-color: $color-light-02; - color: $color-light-90; - border: 1px solid rgba(0, 0, 0, 0.2); - outline: 0; + resize: none; font-size: 1em; font-family: inherit; + @include light-theme { + background-color: $color-gray-02; + color: $color-gray-95; + border: 1px solid $color-black-alpha-20; + outline: 0; + } + + @include dark-theme { + background-color: $color-gray-90; + color: $color-gray-02; + border: 1px solid $color-gray-60; + outline: 0; + } + &[disabled='disabled'] { background: transparent; } @@ -309,9 +364,17 @@ line-height: 18px; letter-spacing: 0; - background-color: $color-gray-75; - color: $color-white; - box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.12), 0 0 0 0.5px rgba(0, 0, 0, 0.08); + @include light-theme { + background-color: $color-gray-75; + color: $color-white; + box-shadow: 0 4px 16px 0 $color-black-alpha-20, + 0 0 0 0.5px $color-black-alpha-05; + } + @include dark-theme { + background-color: $color-gray-45; + color: $color-white; + box-shadow: 0 4px 16px 0 $color-white-alpha-20; + } } .confirmation-dialog { @@ -319,10 +382,19 @@ max-width: 350px; margin: 100px auto; padding: 1em; - background: white; - border-radius: $border-radius; + + border-radius: 5px; overflow: auto; - box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.3); + + @include light-theme { + background: $color-white; + box-shadow: 0px 0px 15px 0px $color-black-alpha-20; + } + @include dark-theme { + background: $color-black; + color: $color-gray-02; + box-shadow: 0px 0px 15px 0px $color-white-alpha-20; + } .buttons { margin-top: 10px; @@ -330,14 +402,28 @@ button { float: right; margin-left: 10px; - background-color: $grey_l; - border-radius: $border-radius; padding: 5px 8px; - border: 1px solid $grey_l2; + border-radius: 5px; + + @include light-theme { + background-color: $color-gray-02; + border: 1px solid $color-gray-15; + } + @include dark-theme { + background-color: $color-gray-90; + border: 1px solid $color-gray-45; + color: $color-gray-02; + } &:hover { - background-color: $grey_l2; - border-color: $grey_l3; + @include light-theme { + background-color: $color-gray-15; + border-color: $color-gray-25; + } + @include dark-theme { + background-color: $color-gray-75; + border-color: $color-gray-45; + } } } } @@ -360,47 +446,3 @@ margin-top: 15px; } } - -.conversation-loading-screen { - z-index: 99; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - align-items: center; - background-color: $color-white; - - .content { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - - .container { - position: absolute; - left: 50%; - width: 120px; - transform: translate(-50%, 0); - } - - .dot { - width: 14px; - height: 14px; - border: 3px solid $blue; - border-radius: 50%; - float: left; - margin: 0 6px; - transform: scale(0); - - animation: loading 1500ms ease infinite 0ms; - &:nth-child(2) { - animation: loading 1500ms ease infinite 333ms; - } - &:nth-child(3) { - animation: loading 1500ms ease infinite 666ms; - } - } -} diff --git a/stylesheets/_debugLog.scss b/stylesheets/_debugLog.scss index 2bb98c6ddbf2..348433c0dcf8 100644 --- a/stylesheets/_debugLog.scss +++ b/stylesheets/_debugLog.scss @@ -18,6 +18,12 @@ font-family: Monaco, Consolas, 'Courier New', Courier, monospace; font-size: 12px; + + @include dark-theme { + background-color: $color-gray-90; + border: 1px solid $color-gray-45; + color: $color-gray-02; + } } } } @@ -35,8 +41,8 @@ max-width: $group-max-width; } - $open-pad-x: ($open-width - $button-height - 2) / 2; - $open-pad-y: ($open-height - $button-height - 2) / 2; + $open-pad-x: ($open-width - 22px) / 2; + $open-pad-y: ($open-height - 22px) / 2; .open { float: left; display: inline-block; @@ -44,28 +50,53 @@ height: $open-height; padding: $open-pad-y $open-pad-x; cursor: pointer; - border: solid 1px #ccc; - border-radius: 0 $border-radius $border-radius 0; - background: $grey_l; + + border-radius: 0 5px 5px 0; + + @include light-theme { + border: solid 1px $color-gray-25; + background: $color-gray-02; + } + @include dark-theme { + border: solid 1px $color-gray-45; + background-color: $color-gray-90; + color: $color-gray-02; + } + &:before { content: ''; display: block; - width: $button-height; - height: $button-height; - @include header-icon-black('../images/open_link.svg'); + width: 24px; + height: 24px; + + @include light-theme { + @include header-icon-black('../images/icons/v2/open-24.svg'); + } + @include dark-theme { + @include header-icon-white('../images/icons/v2/open-24.svg'); + } } } .link { - border-radius: $border-radius 0 0 $border-radius; + border-radius: 5px 0 0 5px; float: left; width: calc(100% - #{$open-width}); max-width: $link-max-width; height: $open-height; padding: 0 10px; outline-offset: -4px; - border: solid 1px #ccc; - border-right: none; + + @include light-theme { + border: solid 1px $color-gray-25; + border-right: none; + } + @include dark-theme { + color: $color-gray-02; + border: solid 1px $color-gray-45; + border-right: none; + background-color: $color-gray-90; + } } } } diff --git a/stylesheets/_global.scss b/stylesheets/_global.scss index eb71a4dddcc1..f29619e53d42 100644 --- a/stylesheets/_global.scss +++ b/stylesheets/_global.scss @@ -11,9 +11,19 @@ body { height: 100%; width: 100%; margin: 0; - font-family: $roboto; - font-size: 14px; - color: $color-light-90; + + color: $color-gray-95; + + @include font-body-1; +} + +body.light-theme { + background-color: $color-white; + color: $color-gray-95; +} +body.dark-theme { + background-color: $color-gray-95; + color: $color-gray-05; } ::-webkit-scrollbar { @@ -25,16 +35,32 @@ body { } ::-webkit-scrollbar-thumb { - background: $color-light-35; - border: 2px solid $color-white; + @include light-theme { + background: $color-gray-25; + border: 2px solid $color-white; + } + @include dark-theme { + background: $color-gray-45; + border: 2px solid $color-gray-90; + } &:hover { - background: $color-light-45; + @include light-theme { + background: $color-gray-45; + } + @include dark-theme { + background: $color-gray-25; + } } } ::-webkit-scrollbar-corner { - background: $color-white; + @include light-theme { + background: $color-white; + } + @include dark-theme { + background: $color-black; + } } audio { @@ -47,9 +73,16 @@ audio { left: 0; right: 0; bottom: 0; - background-color: $color-black; + opacity: 0.25; z-index: 200; + + @include light-theme { + background-color: $color-black; + } + @include dark-theme { + background-color: $color-gray-95; + } } .clearfix:before, @@ -70,18 +103,32 @@ button { font-size: inherit; } button.grey { - border-radius: $border-radius; - border: solid 1px #ccc; + border-radius: 5px; + border: solid 1px $color-gray-25; cursor: pointer; margin: 1em auto; padding: 1em; font-family: inherit; - color: $grey; - background: $grey_l; - box-shadow: 0 0 10px -5px rgba($grey, 0.5); + + @include light-theme { + color: $color-gray-60; + background: $color-gray-02; + box-shadow: 0 0 10px -5px $color-black-alpha-40; + } + @include dark-theme { + border: solid 1px $color-gray-25; + color: $color-gray-60; + background: $color-gray-02; + box-shadow: 0 0 10px -5px $color-white-alpha-60; + } &:hover { - box-shadow: 0 0 10px -3px rgba($grey, 0.7); + @include light-theme { + box-shadow: 0 0 10px -3px $color-black-alpha-60; + } + @include dark-theme { + box-shadow: 0 0 10px -3px $color-white-alpha-80; + } } &[disabled='disabled'] { @@ -95,7 +142,7 @@ button.grey { } a { - color: $blue; + color: $color-signal-blue; } .file-input { @@ -105,8 +152,8 @@ a { } .paperclip { - width: 36px; - height: 36px; + width: 32px; + height: 32px; padding: 0; opacity: 0.5; border: none; @@ -115,10 +162,15 @@ a { &:before { content: ''; display: inline-block; - width: $button-height; - height: $button-height; - @include color-svg('../images/paperclip.svg', $grey); - transform: rotateZ(-45deg) translateY(-2px); + width: 24px; + height: 24px; + + @include light-theme { + @include color-svg('../images/icons/v2/plus-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/plus-24.svg', $color-gray-25); + } } &:focus, @@ -140,31 +192,27 @@ a { } } -.group-member-list, -.new-group-update { - .summary { - margin: 10px; +.group-member-list .members .contact { + @include light-theme { + border-bottom: 1px solid $color-gray-05; + &:last-of-type { + border-bottom: none; + } } - - .members .contact { - box-shadow: none; - border-bottom: 1px solid #eee; - .last-message, - .last-timestamp { - display: none; + @include dark-theme { + border-bottom: 1px solid $color-gray-75; + &:last-of-type { + border-bottom: none; } } } -$unread-badge-size: 21px; - .banner { z-index: 100; - // what's the right color? - background-color: $blue_l; - color: black; - box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.2); + background-color: $color-ios-blue-tint; + color: $color-black; + box-shadow: 0px 3px 5px 0px $color-black-alpha-20; position: absolute; top: 25px; @@ -183,7 +231,7 @@ $unread-badge-size: 21px; height: 18px; display: inline-block; vertical-align: text-bottom; - @include color-svg('../images/warning.svg', black); + @include color-svg('../images/icons/v2/error-solid-24.svg', black); } .dismiss { @@ -193,7 +241,7 @@ $unread-badge-size: 21px; height: 23px; width: 23px; - @include color-svg('../images/x.svg', black); + @include color-svg('../images/icons/v2/x-24.svg', black); } } @@ -208,9 +256,11 @@ $loading-height: 16px; height: $loading-height; width: $loading-height; border-radius: 2 * $loading-height; - border: solid 3px; - border-color: $blue_l $blue_l $grey_l $grey_l !important; animation: rotate 1s linear infinite; + + border: solid 3px; + border-color: $color-ios-blue-tint $color-ios-blue-tint $color-gray-02 + $color-gray-02 !important; } @keyframes rotate { @@ -228,31 +278,32 @@ $loading-height: 16px; width: 22px; height: 22px; padding: 3px; - background: $grey; + background: $color-gray-60; &:before { content: ''; display: block; width: 100%; height: 100%; - @include color-svg('../images/x.svg', white); + @include color-svg('../images/icons/v2/x-24.svg', $color-white); } } .expiredAlert { - background: #f3f3a7; + background: $color-accent-yellow; padding: 10px; button { float: right; border: none; - border-radius: $border-radius; - color: white; + border-radius: 5px; font-weight: bold; line-height: 36px; padding: 0 20px; - background: $blue; margin-left: 20px; + + color: $color-white; + background: $color-signal-blue; } .message { @@ -324,16 +375,15 @@ $loading-height: 16px; right: 0; top: 0; bottom: 0; - font-family: roboto-light; &.overlay { // .modal, used for the settings view, is 100 z-index: 200; } - color: black; + color: $color-black; a { - color: $blue; + color: $color-signal-blue; } background: linear-gradient( to bottom, @@ -352,8 +402,7 @@ $loading-height: 16px; input { margin-top: 1em; font-size: 12pt; - font-family: roboto-light; - border: 2px solid $blue; + border: 2px solid $color-signal-blue; padding: 0.5em; text-align: center; width: 20em; @@ -371,13 +420,13 @@ $loading-height: 16px; display: inline-block; &.ready { - border: 5px solid $blue; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + border: 5px solid $color-signal-blue; + box-shadow: 2px 2px 4px $color-black-alpha-40; } img { height: 20em; - border: 5px solid white; + border: 5px solid $color-white; } @media (max-height: 475px) { @@ -390,7 +439,7 @@ $loading-height: 16px; .dot { width: 14px; height: 14px; - border: 3px solid $blue; + border: 3px solid $color-signal-blue; border-radius: 50%; float: left; margin: 0 6px; @@ -418,10 +467,10 @@ $loading-height: 16px; margin: 0.5em; &.apple { - @include color-svg('../images/apple.svg', black); + @include color-svg('../images/full-screen-flow/apple.svg', black); } &.android { - @include color-svg('../images/android.svg', black); + @include color-svg('../images/full-screen-flow/android.svg', black); } } @@ -496,37 +545,55 @@ $loading-height: 16px; // generic &.check-circle-outline { - @include color-svg('../images/check-circle-outline.svg', #dedede); + @include color-svg( + '../images/full-screen-flow/check-circle-outline.svg', + $color-gray-15 + ); } &.alert-outline { - @include color-svg('../images/alert-outline.svg', #dedede); + @include color-svg( + '../images/full-screen-flow/alert-outline.svg', + $color-gray-15 + ); } // import and export &.folder-outline { - @include color-svg('../images/folder-outline.svg', #dedede); + @include color-svg( + '../images/full-screen-flow/folder-outline.svg', + $color-gray-15 + ); } &.import { - @include color-svg('../images/import.svg', #dedede); - } - &.export { - @include color-svg('../images/export.svg', #dedede); + @include color-svg( + '../images/full-screen-flow/import.svg', + $color-gray-15 + ); } // registration process &.lead-pencil { - @include color-svg('../images/lead-pencil.svg', #dedede); + @include color-svg( + '../images/full-screen-flow/lead-pencil.svg', + $color-gray-15 + ); } &.sync { - @include color-svg('../images/sync.svg', #dedede); + @include color-svg('../images/full-screen-flow/sync.svg', $color-gray-15); } // delete &.alert-outline-red { - @include color-svg('../images/alert-outline.svg', red); + @include color-svg( + '../images/full-screen-flow/alert-outline.svg', + $color-accent-red + ); } &.delete { - @include color-svg('../images/delete.svg', #dedede); + @include color-svg( + '../images/full-screen-flow/delete.svg', + $color-gray-15 + ); } } @@ -539,18 +606,18 @@ $loading-height: 16px; margin-top: 1em; margin-left: 0.5em; margin-right: 0.5em; - color: white; - background: $blue; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + color: $color-white; + background: $color-signal-blue; + box-shadow: 2px 2px 4px $color-black-alpha-40; font-size: 12pt; &.neutral { - color: black; - background: #dedede; + color: $color-black; + background: $color-gray-15; } &.destructive { - background: red; + background: $color-accent-red; } @media (min-height: 750px) and (min-width: 700px) { @@ -562,7 +629,7 @@ $loading-height: 16px; cursor: pointer; text-decoration: underline; margin: 0.5em; - color: #2090ea; + color: $color-signal-blue; } .progress { @@ -574,14 +641,14 @@ $loading-height: 16px; .bar-container { height: 1em; margin: 1em; - background-color: $grey_l; + background-color: $color-gray-02; } .bar { width: 100%; height: 100%; - background-color: $blue_l; + background-color: $color-ios-blue-tint; transition: width 0.25s; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + box-shadow: 2px 2px 4px $color-black-alpha-40; } } diff --git a/stylesheets/_index.scss b/stylesheets/_index.scss index c9afe9e2cd67..198b4f51794d 100644 --- a/stylesheets/_index.scss +++ b/stylesheets/_index.scss @@ -20,18 +20,29 @@ } .gutter { - background-color: $color-gray-02; + @include light-theme { + background-color: $color-gray-02; - ::-webkit-scrollbar-track { - background: $color-gray-02; + ::-webkit-scrollbar-track { + background: $color-gray-02; + } + ::-webkit-scrollbar-thumb { + border: 2px solid $color-gray-02; + } } + @include dark-theme { + background-color: $color-gray-80; - ::-webkit-scrollbar-thumb { - border: 2px solid $color-gray-02; + ::-webkit-scrollbar-track { + background: $color-gray-80; + } + ::-webkit-scrollbar-thumb { + border: 2px solid $color-gray-80; + } } float: left; - width: 300px; + width: $left-pane-width; user-select: none; .content { @@ -44,9 +55,9 @@ .network-status { background: url('../images/error_red.svg') no-repeat left 10px center; background-size: 25px 25px; - background-color: #fcd156; + background-color: $color-accent-yellow; padding: 10px; - padding-left: 2 * $button-height; + padding-left: 48px; display: none; .network-status-message { @@ -61,15 +72,19 @@ font-size: 12px; padding: 0.5em 0; } + + @include dark-theme { + color: $color-gray-90; + } } .action { button { - border-radius: $border-radius; - border: solid 1px #ccc; + border-radius: 5px; + border: solid 1px $color-gray-25; cursor: pointer; font-family: inherit; - color: white; - background: $blue; + color: $color-white; + background: $color-signal-blue; } } } @@ -82,165 +97,6 @@ height: 100%; } -.tool-bar { - color: $color-light-90; - - padding: 8px; - padding-top: 0px; - margin-top: -1px; - - position: relative; - .search-icon { - content: ''; - display: inline-block; - float: left; - width: 24px; - height: 33px; - -webkit-mask: url('../images/search.svg') no-repeat left center; - -webkit-mask-size: 100%; - background-color: $color-light-35; - position: absolute; - left: 20px; - top: 0; - } -} - -$search-x-size: 16px; -$search-padding-right: 12px; -$search-padding-left: 30px; - -input.search { - border: 1px solid $color-black-02; - padding: 0 $search-padding-right 0 $search-padding-left; - margin-left: 8px; - margin-right: 8px; - outline: 0; - height: 32px; - width: calc(100% - 16px); - outline-offset: -2px; - font-size: 14px; - line-height: 18px; - font-weight: normal; - - position: relative; - border-radius: 4px; - - &:focus { - outline: solid 1px $blue; - } - - &.active { - background-image: url('../images/x.svg'); - background-repeat: no-repeat; - background-size: $search-x-size; - - &.ltr { - background-position: right $search-padding-right center; - } - - &.rtl { - background-position: left $search-padding-left center; - } - } - - &::-webkit-search-cancel-button { - -webkit-appearance: none; - display: block; - width: $search-x-size; - height: $search-x-size; - } - - &::-webkit-search-cancel-button:hover { - cursor: pointer; - } -} - -.last-timestamp { - font-size: smaller; - float: right; - margin: 0 10px; - color: $grey; -} - -.new-contact { - display: none; - cursor: pointer; - opacity: 0.7; - .contact-details .number { - display: block; - font-style: italic; - padding-right: 8px; - } - - &.valid { - opacity: 1; - } -} - -.index { - .gutter .new-group-update-form { - display: none; - padding: 0.5em; - } - - .last-message { - margin: 6px 0 0; - font-size: $font-size-small; - } - - .gutter .timestamp { - position: absolute; - top: 14px; - right: 12px; - color: $grey; - } -} - -.conversations .unread .contact-details { - .name, - .last-message, - .last-timestamp { - font-weight: bold; - } -} - -.hint { - margin: 10px; - padding: 1em; - border-radius: $border-radius; - color: white; - border: 2px dashed white; - - h3 { - margin-top: 5px; - } - - &.firstRun { - position: absolute; - top: 0; - left: 302px; - width: 225px; - - &:before, - &:after { - content: ' '; - display: block; - position: absolute; - top: 8px; - left: -35px; - width: 0; - height: 0; - border: solid 10px white; - border-color: transparent white transparent transparent; - transform: scaleX(2.5) scaleY(0.75); - } - &:after { - border-color: transparent #2eace0 transparent transparent; - left: -30px; - } - } -} - .conversation.placeholder { text-align: center; user-select: none; @@ -261,32 +117,3 @@ input.search { font-size: large; } } -.contact.placeholder { - position: absolute; - top: 50px; - left: 0; - background: transparent; - color: white; - border: 2px dashed white; - overflow: visible; - p { - color: white; - } - &:before, - &:after { - content: ' '; - display: block; - position: absolute; - top: -35px; - left: 15px; - width: 0; - height: 0; - border: solid 10px white; - border-color: transparent transparent white transparent; - transform: scaleY(2.5) scaleX(0.75); - } - &:after { - border-color: transparent transparent #2eace0 transparent; - top: -30px; - } -} diff --git a/stylesheets/_ios.scss b/stylesheets/_ios.scss deleted file mode 100644 index d82d98cd501d..000000000000 --- a/stylesheets/_ios.scss +++ /dev/null @@ -1,406 +0,0 @@ -// When paired with an iOS device, this stylesheet will apply - -.ios-theme { - // _modules - - .module-message__container--outgoing { - background-color: $color-signal-blue; - color: $color-white; - } - - .module-message__container--incoming { - background-color: $color-light-10; - color: $color-gray-90; - } - - .module-message__container--with-tap-to-view-expired { - border: 1px solid $color-gray-15; - background-color: $color-white; - } - - .module-message__container--with-tap-to-view-error { - background-color: $color-white; - border: 1px solid $color-deep-red; - } - - .module-message__tap-to-view__icon { - background-color: $color-gray-90; - } - .module-message__tap-to-view__icon--outgoing { - background-color: $color-white; - } - .module-message__tap-to-view__icon--expired { - background-color: $color-gray-75; - } - .module-message__tap-to-view__text { - color: $color-gray-90; - } - .module-message__tap-to-view__text--incoming { - color: $color-gray-90; - } - .module-message__tap-to-view__text--outgoing { - color: $color-white; - } - .module-message__tap-to-view__text--outgoing-expired { - color: $color-gray-90; - } - .module-message__tap-to-view__text--incoming-expired { - color: $color-gray-90; - } - .module-message__tap-to-view__text--incoming-error { - color: $color-gray-60; - } - - .module-message__container--with-tap-to-view-pending { - background-color: $color-gray-15; - } - - .module-message__author { - color: $color-gray-90; - } - - .module-message__text { - color: $color-white; - font-size: 14px; - a { - text-decoration: underline; - color: $color-white; - } - } - - .module-message__text--incoming { - color: $color-gray-90; - a { - text-decoration: underline; - color: $color-gray-90; - } - } - - .module-message__metadata__date { - color: $color-white-08; - } - .module-message__metadata__date--incoming { - color: $color-gray-60; - } - .module-message__metadata__date--with-image-no-caption { - color: $color-white; - } - .module-message__metadata__date--with-sticker { - color: $color-gray-60; - } - .module-message__metadata__date--outgoing-with-tap-to-view-expired { - color: $color-gray-75; - } - - .module-message__metadata__status-icon--sending { - background-color: $color-white; - } - - .module-message__metadata__status-icon--sent { - background-color: $color-white-08; - } - .module-message__metadata__status-icon--delivered { - background-color: $color-white-08; - } - .module-message__metadata__status-icon--read { - background-color: $color-white-08; - } - - .module-message__metadata__status-icon--with-image-no-caption { - background-color: $color-white; - } - .module-message__metadata__status-icon--with-sticker { - background-color: $color-gray-60; - } - .module-message__metadata__status-icon--with-tap-to-view-expired { - background-color: $color-gray-75; - } - - .module-message__generic-attachment__file-name { - color: $color-white; - } - - .module-message__generic-attachment__file-name--incoming { - color: $color-gray-90; - } - - .module-message__generic-attachment__file-size { - color: $color-white; - } - - .module-message__generic-attachment__file-size--incoming { - color: $color-gray-90; - } - - .module-expire-timer { - background-color: $color-white-08; - } - .module-expire-timer--incoming { - background-color: $color-gray-60; - } - .module-expire-timer--with-sticker { - background-color: $color-gray-60; - } - .module-expire-timer--outgoing-with-tap-to-view-expired { - background-color: $color-gray-75; - } - - .module-quote--outgoing { - border-left-color: $color-white; - background-color: $color-white-06; - } - - .module-quote--incoming { - background-color: $color-signal-blue-025; - border-left-color: $color-signal-blue; - } - - .module-quote__reference-warning--incoming { - background-color: $color-signal-blue-mix; - } - - // When you're composing a new quote - .bottom-bar { - .module-quote { - background-color: $color-signal-blue-025; - border-left-color: $color-signal-blue; - } - } - - .module-embedded-contact__contact-name { - color: $color-white; - } - - .module-embedded-contact__contact-method { - color: $color-white-07; - } - - .module-embedded-contact__contact-name--incoming { - color: $color-gray-90; - } - - .module-embedded-contact__contact-method--incoming { - color: $color-light-60; - } - - .module-typing-animation__dot { - background-color: $color-gray-60; - } - - .module-typing-animation__dot--light { - background-color: $color-gray-60; - } - - .module-spinner__circle--incoming { - background-color: $color-white-04; - } - .module-spinner__arc--incoming { - background-color: $color-gray-60; - } - - .module-spinner__circle--outgoing { - background-color: $color-white-04; - } - .module-spinner__arc--outgoing { - background-color: $color-white; - } - - &.dark-theme { - // _modules - - .module-message__container--outgoing { - background-color: $color-signal-blue; - color: $color-gray-05; - } - - .module-message__container--incoming { - background-color: $color-gray-75; - color: $color-gray-05; - } - - .module-message__container--with-tap-to-view-expired { - border: 1px solid $color-gray-60; - background-color: $color-black; - } - - .module-message__container--with-tap-to-view-error { - background-color: $color-black; - border: 1px solid $color-deep-red; - } - - .module-message__author { - color: $color-gray-05; - } - - .module-message__text--incoming { - color: $color-gray-05; - a { - text-decoration: underline; - color: $color-gray-05; - } - } - - .module-message__metadata__status-icon--sending { - background-color: $color-white; - } - - .module-message__metadata__status-icon--sent { - background-color: $color-white-08; - } - .module-message__metadata__status-icon--delivered { - background-color: $color-white-08; - } - .module-message__metadata__status-icon--read { - background-color: $color-white-08; - } - - .module-message__metadata__date { - color: $color-white-08; - } - .module-message__metadata__date--incoming { - color: $color-gray-25; - } - - .module-message__generic-attachment__file-name--incoming { - color: $color-gray-25; - } - .module-message__generic-attachment__file-size--incoming { - color: $color-gray-25; - } - - .module-expire-timer { - background-color: $color-white-08; - } - .module-expire-timer--incoming { - background-color: $color-gray-25; - } - - .module-quote--outgoing { - border-left-color: $color-black; - background-color: $color-conversation-blue-shade; - } - - .module-quote--incoming { - background-color: $color-conversation-blue-shade; - border-left-color: $color-signal-blue; - } - - .module-quote__primary__author { - color: $color-gray-05; - } - - .module-quote__primary__text { - color: $color-gray-05; - a { - color: $color-gray-05; - } - } - - .module-quote__primary__type-label { - color: $color-gray-05; - } - - .module-quote__primary__type-label--incoming { - color: $color-gray-05; - } - - .module-quote__primary__author--incoming { - color: $color-gray-05; - } - - .module-quote__primary__text--incoming { - color: $color-gray-05; - a { - color: $color-gray-05; - } - } - - .module-quote__generic-file__text { - color: $color-gray-05; - } - - .module-quote__generic-file__text--incoming { - color: $color-gray-05; - } - - .module-quote__reference-warning { - background-color: $color-white-04; - } - - .module-quote__reference-warning--incoming { - background-color: $color-signal-blue-050; - } - - .module-quote__reference-warning__text { - color: $color-gray-90; - } - - .module-quote__reference-warning__text--incoming { - color: $color-gray-05; - } - - .module-quote__reference-warning__icon { - @include color-svg('../images/broken-link.svg', $color-signal-blue); - } - - .module-quote__reference-warning__icon--incoming { - @include color-svg('../images/broken-link.svg', $color-gray-75); - } - - // When you're composing a new quote - .bottom-bar { - .module-quote__primary__author { - color: $color-gray-05; - } - - .module-quote__primary__type-label { - color: $color-gray-05; - } - - .module-quote__generic-file__text { - color: $color-gray-05; - } - - .module-quote__primary__text { - color: $color-gray-05; - a { - color: $color-gray-05; - } - } - } - - .module-embedded-contact__contact-name--incoming { - color: $color-gray-05; - } - - .module-embedded-contact__contact-method--incoming { - color: $color-gray-25; - } - - .module-spinner__circle--incoming { - background-color: $color-white-04; - } - .module-spinner__arc--incoming { - background-color: $color-gray-25; - } - .module-spinner__circle--small-incoming { - background-color: $color-white-04; - } - .module-spinner__arc--small-incoming { - background-color: $color-gray-25; - } - - .module-spinner__circle--outgoing { - background-color: $color-white-04; - } - .module-spinner__arc--outgoing { - background-color: $color-gray-05; - } - .module-spinner__circle--small-outgoing { - background-color: $color-white-04; - } - .module-spinner__arc--small-outgoing { - background-color: $color-gray-05; - } - } -} diff --git a/stylesheets/_lightbox.scss b/stylesheets/_lightbox.scss index 6fe5200f58d2..df7715eb8138 100644 --- a/stylesheets/_lightbox.scss +++ b/stylesheets/_lightbox.scss @@ -33,30 +33,39 @@ } &:hover { - background: $grey; + background: $color-gray-60; } &.save { &:before { - @include color-svg('../images/save.svg', white); + @include color-svg( + '../images/icons/v2/save-outline-24.svg', + $color-white + ); } } &.close { &:before { - @include color-svg('../images/x.svg', white); + @include color-svg('../images/icons/v2/x-24.svg', $color-white); } } &.previous { &:before { - @include color-svg('../images/back.svg', white); + @include color-svg( + '../images/icons/v2/chevron-left-24.svg', + $color-white + ); } } &.next { &:before { - @include color-svg('../images/forward.svg', white); + @include color-svg( + '../images/icons/v2/chevron-right-24.svg', + $color-white + ); } } } diff --git a/stylesheets/_mixins.scss b/stylesheets/_mixins.scss index a12f27eb9647..1be7a7ccce45 100644 --- a/stylesheets/_mixins.scss +++ b/stylesheets/_mixins.scss @@ -1,35 +1,85 @@ -@mixin button-reset { - background: none; - color: inherit; - border: none; - padding: 0; - font: inherit; - cursor: pointer; - outline: inherit; +// Fonts + +@mixin font-title-1 { + font-family: $inter; + font-weight: bolder; + font-size: 28px; + line-height: 34px; + letter-spacing: -0.56px; } -@mixin color-svg($svg, $color, $stretch: true) { - -webkit-mask: url($svg) no-repeat center; - @if $stretch { - -webkit-mask-size: 100%; - } - background-color: $color; +@mixin font-title-2 { + font-family: $inter; + font-weight: bolder; + font-size: 20px; + line-height: 26px; + letter-spacing: -0.34px; } -@mixin header-icon-white($svg) { - @include color-svg($svg, rgba(255, 255, 255, 0.8)); - &:focus, - &:hover { - @include color-svg($svg, white); - } +@mixin font-body-1 { + font-family: $inter; + font-size: 16px; + line-height: 22px; + letter-spacing: -0.18px; } -@mixin header-icon-black($svg) { - @include color-svg($svg, rgba(0, 0, 0, 0.5)); - &:focus, - &:hover { - @include color-svg($svg, black); - } +@mixin font-body-1-bold { + @include font-body-1; + font-weight: bold; } +@mixin font-body-1-italic { + @include font-body-1; + font-style: italic; +} +@mixin font-body-1-bold-italic { + @include font-body-1; + font-weight: bold; + font-style: italic; +} + +@mixin font-body-2 { + font-family: $inter; + font-size: 14px; + line-height: 20px; + letter-spacing: -0.08px; +} +@mixin font-body-2-bold { + @include font-body-2; + font-weight: bold; +} +@mixin font-body-2-italic { + @include font-body-2; + font-style: italic; +} +@mixin font-body-2-bold-italic { + @include font-body-2; + font-weight: bold; + font-style: italic; +} + +@mixin font-subtitle { + font-family: $inter; + font-size: 13px; + line-height: 18px; + letter-spacing: -0.04px; +} + +@mixin font-caption { + font-family: $inter; + font-size: 12px; + line-height: 16px; + letter-spacing: 0px; +} +@mixin font-caption-bold { + @include font-caption; + font-weight: bold; +} +@mixin font-caption-bold-italic { + @include font-caption; + font-weight: bold; + font-style: italic; +} + +// Themes @mixin light-theme() { @content; @@ -41,6 +91,56 @@ } } -@mixin popper-shadow() { - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 20px 0 rgba(0, 0, 0, 0.33); +@mixin ios-theme() { + .ios-theme & { + @content; + } +} + +@mixin ios-dark-theme() { + .dark-theme.ios-theme & { + @content; + } +} + +// Icons + +@mixin color-svg($svg, $color, $stretch: true) { + -webkit-mask: url($svg) no-repeat center; + @if $stretch { + -webkit-mask-size: 100%; + } + background-color: $color; +} + +@mixin header-icon-white($svg) { + @include color-svg($svg, $color-white-alpha-80); + &:focus, + &:hover { + @include color-svg($svg, $color-white); + } +} +@mixin header-icon-black($svg) { + @include color-svg($svg, $color-black-alpha-40); + &:focus, + &:hover { + @include color-svg($svg, black); + } +} + +// Other + +@mixin popper-shadow() { + box-shadow: 0 0 0 1px $color-black-alpha-05, + 0 8px 20px 0 $color-black-alpha-20; +} + +@mixin button-reset { + background: none; + color: inherit; + border: none; + padding: 0; + font: inherit; + cursor: pointer; + outline: inherit; } diff --git a/stylesheets/_modal.scss b/stylesheets/_modal.scss index 428cc46f3e39..07dadb037ed7 100644 --- a/stylesheets/_modal.scss +++ b/stylesheets/_modal.scss @@ -4,7 +4,7 @@ left: 0; height: 100%; width: 100%; - background-color: rgba(0, 0, 0, 0.3); + background-color: $color-black-alpha-20; padding: 0 20px; z-index: 100; overflow-y: auto; @@ -14,9 +14,16 @@ max-width: 350px; margin: 100px auto; padding: 1em; - background-color: $color-white; - border-radius: $border-radius; + border-radius: 5px; overflow: auto; - box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.2); + + @include light-theme { + background-color: $color-white; + box-shadow: 0px 3px 5px 0px $color-black-alpha-20; + } + @include dark-theme { + background-color: $color-gray-95; + box-shadow: 0px 3px 5px 0px $color-white-alpha-20; + } } } diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss index 8384824afdfb..7f33d5c872c1 100644 --- a/stylesheets/_modules.scss +++ b/stylesheets/_modules.scss @@ -66,7 +66,7 @@ } .module-message--incoming.module-message--group { - margin-left: 48px; + margin-left: 52px; } .module-message__buttons { @@ -95,9 +95,26 @@ width: 24px; display: inline-block; cursor: pointer; - @include color-svg('../images/download.svg', $color-light-45); - &:hover { - @include color-svg('../images/download.svg', $color-gray-90); + @include light-theme { + @include color-svg( + '../images/icons/v2/save-outline-24.svg', + $color-gray-45 + ); + &:hover { + @include color-svg( + '../images/icons/v2/save-outline-24.svg', + $color-gray-90 + ); + } + } + @include dark-theme { + @include color-svg('../images/icons/v2/save-solid-24.svg', $color-gray-45); + &:hover { + @include color-svg( + '../images/icons/v2/save-solid-24.svg', + $color-gray-02 + ); + } } } @@ -113,9 +130,27 @@ width: 24px; display: inline-block; cursor: pointer; - @include color-svg('../images/reply.svg', $color-light-45); - &:hover { - @include color-svg('../images/reply.svg', $color-gray-90); + + @include light-theme { + @include color-svg( + '../images/icons/v2/reply-outline-24.svg', + $color-gray-45 + ); + &:hover { + @include color-svg( + '../images/icons/v2/reply-outline-24.svg', + $color-gray-90 + ); + } + } + @include dark-theme { + @include color-svg('../images/icons/v2/reply-solid-24.svg', $color-gray-45); + &:hover { + @include color-svg( + '../images/icons/v2/reply-solid-24.svg', + $color-gray-02 + ); + } } } @@ -131,9 +166,23 @@ width: 24px; display: inline-block; cursor: pointer; - @include color-svg('../images/ellipsis.svg', $color-light-45); - &:hover { - @include color-svg('../images/ellipsis.svg', $color-gray-90); + + @include color-svg('../images/icons/v2/more-horiz-24.svg', $color-gray-45); + @include light-theme { + &:hover { + @include color-svg( + '../images/icons/v2/more-horiz-24.svg', + $color-gray-90 + ); + } + } + @include dark-theme { + &:hover { + @include color-svg( + '../images/icons/v2/more-horiz-24.svg', + $color-gray-02 + ); + } } } @@ -156,7 +205,19 @@ display: inline-block; position: absolute; bottom: 4px; - @include color-svg('../images/error.svg', $color-core-red); + + @include light-theme { + @include color-svg( + '../images/icons/v2/error-outline-24.svg', + $color-accent-red + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/error-solid-24.svg', + $color-accent-red + ); + } } .module-message__error--outgoing { @@ -191,7 +252,20 @@ } .module-message__container--outgoing { - background-color: $color-light-10; + @include light-theme { + background-color: $color-gray-05; + } + @include dark-theme { + background-color: $color-gray-75; + } + @include ios-theme { + background-color: $color-signal-blue; + color: $color-white; + } + @include ios-dark-theme { + background-color: $color-signal-blue; + color: $color-gray-05; + } } .module-message__container--selected { @@ -217,40 +291,21 @@ // In case the color gets messed up .module-message__container--incoming { background-color: $color-conversation-grey; + + @include ios-theme { + background-color: $color-gray-05; + color: $color-gray-90; + } + @include ios-dark-theme { + background-color: $color-gray-75; + color: $color-gray-05; + } } -.module-message__container--incoming-red { - background-color: $color-conversation-red; -} -.module-message__container--incoming-deep_orange { - background-color: $color-conversation-deep_orange; -} -.module-message__container--incoming-brown { - background-color: $color-conversation-brown; -} -.module-message__container--incoming-pink { - background-color: $color-conversation-pink; -} -.module-message__container--incoming-purple { - background-color: $color-conversation-purple; -} -.module-message__container--incoming-indigo { - background-color: $color-conversation-indigo; -} -.module-message__container--incoming-blue { - background-color: $color-conversation-blue; -} -.module-message__container--incoming-teal { - background-color: $color-conversation-teal; -} -.module-message__container--incoming-green { - background-color: $color-conversation-green; -} -.module-message__container--incoming-light_green { - background-color: $color-conversation-light_green; -} -.module-message__container--incoming-blue_grey { - background-color: $color-conversation-blue_grey; +@each $color, $value in $conversation-colors { + .module-message__container--incoming-#{$color} { + background-color: $value; + } } .module-message__container--with-tap-to-view { @@ -258,41 +313,21 @@ cursor: pointer; } +.module-message__container--with-tap-to-view-pending { + @include ios-theme { + background-color: $color-gray-15; + } +} + +// In case the color gets messed up .module-message__container--incoming--tap-to-view-pending { background-color: $color-conversation-grey-shade; } -.module-message__container--incoming-red-tap-to-view-pending { - background-color: $color-conversation-red-shade; -} -.module-message__container--incoming-deep_orange-tap-to-view-pending { - background-color: $color-conversation-deep_orange-shade; -} -.module-message__container--incoming-brown-tap-to-view-pending { - background-color: $color-conversation-brown-shade; -} -.module-message__container--incoming-pink-tap-to-view-pending { - background-color: $color-conversation-pink-shade; -} -.module-message__container--incoming-purple-tap-to-view-pending { - background-color: $color-conversation-purple-shade; -} -.module-message__container--incoming-indigo-tap-to-view-pending { - background-color: $color-conversation-indigo-shade; -} -.module-message__container--incoming-blue-tap-to-view-pending { - background-color: $color-conversation-blue-shade; -} -.module-message__container--incoming-teal-tap-to-view-pending { - background-color: $color-conversation-teal-shade; -} -.module-message__container--incoming-green-tap-to-view-pending { - background-color: $color-conversation-green-shade; -} -.module-message__container--incoming-light_green-tap-to-view-pending { - background-color: $color-conversation-light_green-shade; -} -.module-message__container--incoming-blue_grey-tap-to-view-pending { - background-color: $color-conversation-blue_grey-shade; + +@each $color, $value in $conversation-colors-shade { + .module-message__container--incoming-#{$color}-tap-to-view-pending { + background-color: $value; + } } .module-message__container--with-tap-to-view-pending { @@ -301,15 +336,45 @@ .module-message__container--with-tap-to-view-expired { cursor: default; - border: 1px solid $color-gray-15; - background-color: $color-white; + + @include light-theme { + border: 1px solid $color-gray-15; + background-color: $color-white; + } + @include dark-theme { + border: 1px solid $color-gray-60; + background-color: $color-black; + } + @include ios-theme { + border: 1px solid $color-gray-15; + background-color: $color-white; + } + @include ios-dark-theme { + border: 1px solid $color-gray-60; + background-color: $color-black; + } } .module-message__container--with-tap-to-view-error { - background-color: $color-white; - border: 1px solid $color-core-red; width: auto; cursor: default; + + @include light-theme { + background-color: $color-white; + border: 1px solid $color-accent-red; + } + @include dark-theme { + background-color: $color-gray-95; + border: 1px solid $color-deep-red; + } + @include ios-theme { + background-color: $color-white; + border: 1px solid $color-deep-red; + } + @include ios-dark-theme { + background-color: $color-black; + border: 1px solid $color-deep-red; + } } .module-message__tap-to-view { @@ -343,29 +408,121 @@ width: 20px; height: 20px; - @include color-svg('../images/play-filled-24.svg', $color-white); + @include light-theme { + @include color-svg('../images/icons/v2/play-solid-24.svg', $color-white); + } + @include dark-theme { + @include color-svg('../images/icons/v2/play-solid-24.svg', $color-gray-05); + } + @include ios-theme { + @include color-svg('../images/icons/v2/play-solid-24.svg', $color-gray-90); + } + @include ios-dark-theme { + @include color-svg('../images/icons/v2/play-solid-24.svg', $color-gray-05); + } } .module-message__tap-to-view__icon--outgoing { - background-color: $color-gray-75; + @include light-theme { + background-color: $color-gray-75; + } + @include dark-theme { + background-color: $color-gray-05; + } + @include ios-theme { + background-color: $color-white; + } } .module-message__tap-to-view__icon--expired { - @include color-svg('../images/play-outline-24.svg', $color-gray-75); + @include light-theme { + @include color-svg( + '../images/icons/v2/play-outline-24.svg', + $color-gray-75 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/play-outline-24.svg', + $color-gray-05 + ); + } + @include ios-theme { + @include color-svg( + '../images/icons/v2/play-outline-24.svg', + $color-gray-75 + ); + } + @include ios-dark-theme { + @include color-svg( + '../images/icons/v2/play-outline-24.svg', + $color-gray-05 + ); + } } .module-message__tap-to-view__text { - font-size: 13px; - font-weight: 300; - line-height: 18px; + @include font-body-1-bold; - color: $color-gray-90; + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } + @include ios-theme { + color: $color-gray-90; + } } .module-message__tap-to-view__text--incoming { - color: $color-white; + @include light-theme { + color: $color-white; + } + @include dark-theme { + color: $color-gray-05; + } + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-05; + } } .module-message__tap-to-view__text--incoming-expired { - color: $color-gray-90; + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-05; + } } .module-message__tap-to-view__text--incoming-error { - color: $color-gray-60; + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } + @include ios-theme { + color: $color-gray-60; + } +} + +.module-message__tap-to-view__text--outgoing { + @include ios-theme { + color: $color-white; + } +} +.module-message__tap-to-view__text--outgoing-expired { + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-05; + } } .module-message__attachment-container { @@ -383,7 +540,12 @@ border-radius: 16px; overflow: hidden; - background-color: $color-white; + @include light-theme { + background-color: $color-white; + } + @include dark-theme { + background-color: $color-gray-95; + } &--with-content-below { margin-bottom: 7px; @@ -490,7 +652,10 @@ height: 16px; width: 16px; - @include color-svg('../images/error-filled.svg', $color-core-red); + @include color-svg( + '../images/icons/v2/error-solid-24.svg', + $color-accent-red + ); } .module-message__generic-attachment__icon__extension { @@ -521,36 +686,62 @@ } .module-message__generic-attachment__file-name { - color: $color-gray-90; - font-size: 14px; - line-height: 18px; - font-weight: 300; + @include font-body-2-bold; + margin-top: 2px; // Handling really long filenames - cut them off overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-theme { + color: $color-white; + } } .module-message__generic-attachment__file-name--incoming { color: $color-white; + + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-25; + } } .module-message__generic-attachment__file-size { - color: $color-gray-90; - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; + @include font-body-2; + margin-top: 3px; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-theme { + color: $color-white; + } } .module-message__generic-attachment__file-size--incoming { color: $color-white; -} -.module-message__generic-attachment__file-size--incoming { - color: $color-white; + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-25; + } } .module-message__link-preview { @@ -578,7 +769,14 @@ display: flex; flex-direction: row; align-items: flex-start; - border: 1px solid $color-black-015; + + @include light-theme { + border: 1px solid $color-black-alpha-20; + } + @include dark-theme { + background-color: $color-gray-95; + border: 1px solid $color-gray-60; + } } .module-message__link-preview__content--with-content-above { @@ -599,65 +797,82 @@ } .module-message__link-preview__title { - color: $color-gray-90; - font-size: 16px; - font-weight: 300; - letter-spacing: 0.15px; - line-height: 22px; + @include font-body-1-bold; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } .module-message__link-preview__location { + @include font-body-2; + margin-top: 4px; - color: $color-gray-60; - font-size: 12px; - height: 16px; - letter-spacing: 0.4px; - line-height: 16px; text-transform: uppercase; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-message__author { - color: $color-white; - font-size: 13px; - font-weight: 300; - line-height: 18px; + @include font-caption-bold; + height: 18px; overflow-x: hidden; overflow-y: hidden; white-space: nowrap; text-overflow: ellipsis; + color: $color-white-alpha-90; + + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-05; + } + &__profile-name { - font-style: italic; + @include font-caption-bold-italic; } } .module-message__author--with-tap-to-view-expired { - color: $color-gray-75; - font-size: 13px; - font-weight: 300; - line-height: 18px; + @include font-caption-bold; + height: 18px; overflow-x: hidden; overflow-y: hidden; white-space: nowrap; text-overflow: ellipsis; + @include light-theme { + color: $color-gray-75; + } + @include dark-theme { + color: $color-white; + } + &__profile-name { font-style: italic; } } .module-message__author_with_sticker { - color: $color-gray-90; - font-size: 13px; - font-weight: 300; - line-height: 18px; + @include font-caption-bold; + height: 18px; overflow-x: hidden; overflow-y: hidden; @@ -670,37 +885,92 @@ // look bad for RTL users if we make it too wide. width: 300px; + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } + &__profile-name { font-style: italic; } } .module-message__text { - color: $color-gray-90; - font-size: 14px; - line-height: 18px; + @include font-body-1; + text-align: start; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; white-space: pre-wrap; + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } + @include ios-theme { + color: $color-white-alpha-90; + } + @include ios-dark-theme { + color: $color-white-alpha-90; + } + a { text-decoration: underline; - color: $color-gray-90; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } + @include ios-theme { + color: $color-white-alpha-90; + } + @include ios-dark-theme { + color: $color-white-alpha-90; + } } } .module-message__text--incoming { - color: $color-white; + @include light-theme { + color: $color-white; + } + @include ios-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-white-alpha-90; + } + @include ios-dark-theme { + color: $color-gray-05; + } + a { text-decoration: underline; - color: $color-white; + + @include light-theme { + color: $color-white; + } + @include ios-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-white-alpha-90; + } + @include ios-dark-theme { + color: $color-gray-05; + } } } .module-message__text--error { - font-style: italic; + @include font-body-1-italic; } .module-message__metadata { @@ -724,21 +994,50 @@ } .module-message__metadata__date { - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; - color: $color-gray-60; - text-transform: uppercase; + @include font-caption; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-white-alpha-80; + } + @include ios-theme { + color: $color-white-alpha-80; + } + @include ios-dark-theme { + color: $color-white-alpha-80; + } } .module-message__metadata__date--incoming { - color: $color-white-08; + color: $color-white-alpha-80; + + @include ios-theme { + color: $color-gray-60; + } + @include ios-dark-theme { + color: $color-gray-25; + } } .module-message__metadata__date--with-image-no-caption { - color: $color-white; + @include light-theme { + color: $color-white; + } + @include dark-theme { + color: $color-white-alpha-80; + } + @include ios-theme { + color: $color-white; + } } .module-message__metadata__date--incoming-with-tap-to-view-expired { color: $color-gray-75; } +.module-message__metadata__date--with-sticker { + @include ios-theme { + color: $color-gray-60; + } +} .module-message__metadata__spacer { flex-grow: 1; @@ -753,8 +1052,20 @@ } .module-message__metadata__status-icon--sending { - @include color-svg('../images/sending.svg', $color-gray-60); animation: module-message__metadata__status-icon--spinning 4s linear infinite; + + @include light-theme { + @include color-svg('../images/sending.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/sending.svg', $color-white-alpha-80); + } + @include ios-theme { + @include color-svg('../images/sending.svg', $color-gray-60); + } + @include ios-dark-theme { + @include color-svg('../images/sending.svg', $color-white); + } } @keyframes module-message__metadata__status-icon--spinning { @@ -765,30 +1076,92 @@ } .module-message__metadata__status-icon--sent { - @include color-svg('../images/check-circle-outline.svg', $color-gray-60); + @include light-theme { + @include color-svg('../images/check-circle-outline.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg( + '../images/check-circle-outline.svg', + $color-white-alpha-80 + ); + } + @include ios-theme { + @include color-svg( + '../images/check-circle-outline.svg', + $color-white-alpha-80 + ); + } + @include ios-dark-theme { + @include color-svg( + '../images/check-circle-outline.svg', + $color-white-alpha-80 + ); + } } .module-message__metadata__status-icon--delivered { - @include color-svg('../images/double-check.svg', $color-gray-60); width: 18px; + + @include light-theme { + @include color-svg('../images/double-check.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/double-check.svg', $color-white-alpha-80); + } + @include ios-theme { + @include color-svg('../images/double-check.svg', $color-white-alpha-80); + } + @include ios-dark-theme { + @include color-svg('../images/double-check.svg', $color-white-alpha-80); + } } .module-message__metadata__status-icon--read { - @include color-svg('../images/read.svg', $color-gray-60); width: 18px; + + @include light-theme { + @include color-svg('../images/read.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/read.svg', $color-white-alpha-80); + } + @include ios-theme { + @include color-svg('../images/read.svg', $color-white-alpha-80); + } + @include ios-dark-theme { + @include color-svg('../images/read.svg', $color-white-alpha-80); + } } // When status indicators are overlaid on top of an image, they use different colors .module-message__metadata__status-icon--with-image-no-caption { - background-color: $color-white; + @include light-theme { + background-color: $color-white; + } + @include dark-theme { + background-color: $color-gray-02; + } + @include ios-theme { + background-color: $color-white; + } +} +.module-message__metadata__status-icon--with-sticker { + @include ios-theme { + background-color: $color-gray-60; + } +} +.module-message__metadata__status-icon--with-tap-to-view-expired { + @include ios-theme { + background-color: $color-gray-75; + } +} + +.module-message__metadata__spinner-container { + margin-left: 6px; } .module-message__send-message-button { cursor: pointer; - font-weight: 300; - font-size: 13px; - line-height: 18px; - color: $color-signal-blue; - background-color: $color-light-02; - border: 1px solid $color-black-012; + + @include font-body-2-bold; margin-top: 8px; margin-bottom: -10px; @@ -800,6 +1173,17 @@ border-bottom-left-radius: 16px; border-bottom-right-radius: 16px; + + @include light-theme { + color: $color-signal-blue; + background-color: $color-gray-02; + border: 1px solid $color-black-alpha-20; + } + @include dark-theme { + color: $color-signal-blue; + background-color: $color-gray-75; + border: 1px solid $color-gray-45; + } } .module-message__author-avatar { @@ -824,56 +1208,76 @@ display: inline-block; margin-left: 6px; margin-bottom: 2px; - @include color-svg('../images/timer-60.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/icons/v2/timer-60-12.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/timer-60-12.svg', + $color-white-alpha-80 + ); + } + @include ios-theme { + @include color-svg( + '../images/icons/v2/timer-60-12.svg', + $color-white-alpha-80 + ); + } } -.module-expire-timer--55 { - @include color-svg('../images/timer-55.svg', $color-gray-60); -} -.module-expire-timer--50 { - @include color-svg('../images/timer-50.svg', $color-gray-60); -} -.module-expire-timer--45 { - @include color-svg('../images/timer-45.svg', $color-gray-60); -} -.module-expire-timer--40 { - @include color-svg('../images/timer-40.svg', $color-gray-60); -} -.module-expire-timer--35 { - @include color-svg('../images/timer-35.svg', $color-gray-60); -} -.module-expire-timer--30 { - @include color-svg('../images/timer-30.svg', $color-gray-60); -} -.module-expire-timer--25 { - @include color-svg('../images/timer-25.svg', $color-gray-60); -} -.module-expire-timer--20 { - @include color-svg('../images/timer-20.svg', $color-gray-60); -} -.module-expire-timer--15 { - @include color-svg('../images/timer-15.svg', $color-gray-60); -} -.module-expire-timer--10 { - @include color-svg('../images/timer-10.svg', $color-gray-60); -} -.module-expire-timer--05 { - @include color-svg('../images/timer-05.svg', $color-gray-60); -} -.module-expire-timer--00 { - @include color-svg('../images/timer-00.svg', $color-gray-60); +$timer-icons: 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 05, 00; + +@each $timer-icon in $conversation-colors { + .module-expire-timer--#{$timer-icon} { + @include light-theme { + @include color-svg( + '../images/icons/v2/timer-#{$timer-icon}-12.svg', + $color-gray-60 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/timer-#{$timer-icon}-12.svg', + $color-white-alpha-80 + ); + } + @include ios-theme { + @include color-svg( + '../images/icons/v2/timer-#{$timer-icon}-12.svg', + $color-white-alpha-80 + ); + } + } } .module-expire-timer--incoming { - background-color: $color-white-08; + background-color: $color-white-alpha-80; + + @include ios-theme { + background-color: $color-gray-60; + } + @include ios-dark-theme { + background-color: $color-gray-25; + } } .module-expire-timer--incoming-with-tap-to-view-expired { background-color: $color-gray-75; } +.module-expire-timer--with-sticker { + @include ios-theme { + background-color: $color-gray-60; + } +} // When status indicators are overlaid on top of an image, they use different colors .module-expire-timer--with-image-no-caption { - background-color: $color-white; + @include light-theme { + background-color: $color-white; + } + @include dark-theme { + background-color: $color-gray-02; + } } // Module: Quoted Reply @@ -926,89 +1330,77 @@ .module-quote--outgoing { border-left-color: $color-conversation-grey; - background-color: $color-conversation-grey-tint; + @include light-theme { + background-color: $color-conversation-grey-tint; + } + @include dark-theme { + background-color: $color-conversation-grey-shade; + } + + // Note: both of these override all of the specific color classes below + @include ios-theme { + border-left-color: $color-white; + background-color: $color-white-alpha-60; + } + @include ios-dark-theme { + border-left-color: $color-black; + background-color: $color-conversation-blue-shade; + } } -.module-quote--outgoing-red { - border-left-color: $color-conversation-red; - background-color: $color-conversation-red-tint; + +@each $color, $value in $conversation-colors { + .module-quote--outgoing-#{$color} { + border-left-color: $value; + } } -.module-quote--outgoing-deep_orange { - border-left-color: $color-conversation-deep_orange; - background-color: $color-conversation-deep_orange-tint; +@each $color, $value in $conversation-colors-tint { + .module-quote--outgoing-#{$color} { + @include light-theme { + background-color: $value; + } + } } -.module-quote--outgoing-brown { - border-left-color: $color-conversation-brown; - background-color: $color-conversation-brown-tint; -} -.module-quote--outgoing-pink { - border-left-color: $color-conversation-pink; - background-color: $color-conversation-pink-tint; -} -.module-quote--outgoing-purple { - border-left-color: $color-conversation-purple; - background-color: $color-conversation-purple-tint; -} -.module-quote--outgoing-indigo { - border-left-color: $color-conversation-indigo; - background-color: $color-conversation-indigo-tint; -} -.module-quote--outgoing-blue { - border-left-color: $color-conversation-blue; - background-color: $color-conversation-blue-tint; -} -.module-quote--outgoing-teal { - border-left-color: $color-conversation-teal; - background-color: $color-conversation-teal-tint; -} -.module-quote--outgoing-green { - border-left-color: $color-conversation-green; - background-color: $color-conversation-green-tint; -} -.module-quote--outgoing-light_green { - border-left-color: $color-conversation-light_green; - background-color: $color-conversation-light_green-tint; -} -.module-quote--outgoing-blue_grey { - border-left-color: $color-conversation-blue_grey; - background-color: $color-conversation-blue_grey-tint; +@each $color, $value in $conversation-colors-shade { + .module-quote--outgoing-#{$color} { + @include dark-theme { + background-color: $value; + } + } } .module-quote--incoming { - border-left-color: $color-white; - background-color: $color-conversation-grey-tint; + @include light-theme { + border-left-color: $color-white; + background-color: $color-conversation-grey-tint; + } + @include dark-theme { + border-left-color: $color-black; + background-color: $color-conversation-grey-shade; + } + + // Note: both of these override all of the specific color classes below + @include ios-theme { + background-color: $color-signal-blue-alpha-25; + border-left-color: $color-signal-blue; + } + @include ios-dark-theme { + background-color: $color-conversation-blue-shade; + border-left-color: $color-signal-blue; + } } -.module-quote--incoming-red { - background-color: $color-conversation-red-tint; +@each $color, $value in $conversation-colors-tint { + .module-quote--incoming-#{$color} { + @include light-theme { + background-color: $value; + } + } } -.module-quote--incoming-deep_orange { - background-color: $color-conversation-deep_orange-tint; -} -.module-quote--incoming-brown { - background-color: $color-conversation-brown-tint; -} -.module-quote--incoming-pink { - background-color: $color-conversation-pink-tint; -} -.module-quote--incoming-purple { - background-color: $color-conversation-purple-tint; -} -.module-quote--incoming-indigo { - background-color: $color-conversation-indigo-tint; -} -.module-quote--incoming-blue { - background-color: $color-conversation-blue-tint; -} -.module-quote--incoming-teal { - background-color: $color-conversation-teal-tint; -} -.module-quote--incoming-green { - background-color: $color-conversation-green-tint; -} -.module-quote--incoming-light_green { - background-color: $color-conversation-light_green-tint; -} -.module-quote--incoming-blue_grey { - background-color: $color-conversation-blue_grey-tint; +@each $color, $value in $conversation-colors-shade { + .module-quote--incoming-#{$color} { + @include dark-theme { + background-color: $value; + } + } } .module-quote__primary { @@ -1022,28 +1414,55 @@ } .module-quote__primary__author { - font-size: 13px; - line-height: 18px; - font-weight: 300; - color: $color-gray-90; + @include font-caption-bold; overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-dark-theme { + color: $color-gray-05; + } +} + +.module-quote__primary__author--incoming { + @include ios-dark-theme { + color: $color-gray-05; + } } .module-quote__primary__profile-name { - font-style: italic; + @include font-caption-bold-italic; } .module-quote__primary__text { - font-size: 14px; - line-height: 18px; - color: $color-gray-90; + @include font-body-2; + text-align: start; - a { + @include light-theme { color: $color-gray-90; + a { + color: $color-gray-90; + } + } + @include dark-theme { + color: $color-gray-02; + a { + color: $color-gray-02; + } + } + @include ios-dark-theme { + color: $color-gray-05; + a { + color: $color-gray-05; + } } overflow-wrap: break-word; @@ -1063,15 +1482,37 @@ // - https://medium.com/mofed/css-line-clamp-the-good-the-bad-and-the-straight-up-broken-865413f16e5 } +.module-quote__primary__text--incoming { + @include ios-dark-theme { + color: $color-gray-05; + a { + color: $color-gray-05; + } + } +} + .module-quote__primary__type-label { - font-style: italic; - color: $color-gray-90; - font-size: 13px; - line-height: 18px; + @include font-body-2-italic; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-dark-theme { + color: $color-gray-05; + } +} + +.module-quote__primary__type-label--incoming { + @include ios-dark-theme { + color: $color-gray-05; + } } .module-quote__primary__filename-label { - font-size: 12px; + @include font-body-2; } .module-quote__close-container { @@ -1081,15 +1522,33 @@ height: 16px; width: 16px; - background-color: rgba(255, 255, 255, 0.75); border-radius: 50%; + + @include light-theme { + background-color: $color-white-alpha-60; + } + @include dark-theme { + background-color: $color-white-alpha-40; + } } .module-quote__close-button { - width: 100%; - height: 100%; + width: 14px; + height: 14px; cursor: pointer; - @include color-svg('../images/x.svg', $grey); + + position: absolute; + left: 50%; + top: 50%; + + transform: translate(-50%, -50%); + + @include light-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-white); + } } .module-quote__icon-container { @@ -1131,8 +1590,8 @@ } .module-quote__icon-container__icon { - width: 24px; - height: 24px; + width: 20px; + height: 20px; } .module-quote__icon-container__icon--file { @@ -1142,10 +1601,16 @@ @include color-svg('../images/image.svg', $color-signal-blue); } .module-quote__icon-container__icon--microphone { - @include color-svg('../images/microphone.svg', $color-signal-blue); + @include color-svg( + '../images/icons/v2/mic-outline-24.svg', + $color-signal-blue + ); } .module-quote__icon-container__icon--play { - @include color-svg('../images/play.svg', $color-signal-blue); + @include color-svg( + '../images/icons/v2/play-solid-24.svg', + $color-signal-blue + ); } .module-quote__icon-container__icon--movie { @include color-svg('../images/movie.svg', $color-signal-blue); @@ -1167,14 +1632,28 @@ margin-bottom: 5px; } .module-quote__generic-file__text { - font-size: 14px; - line-height: 18px; - color: $color-gray-90; + @include font-body-2; max-width: calc(100% - 26px); overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-dark-theme { + color: $color-gray-05; + } +} + +.module-quote__generic-file__text--incoming { + @include ios-dark-theme { + color: $color-gray-05; + } } .module-quote__reference-warning { @@ -1183,24 +1662,68 @@ flex-direction: row; align-items: center; - background-color: $color-white-085; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding-left: 8px; padding-right: 8px; + + background-color: $color-white-alpha-80; + @include ios-theme { + background-color: $color-signal-blue-tint-alpha-50; + } + @include ios-dark-theme { + background-color: $color-white-alpha-40; + } +} + +.module-quote__reference-warning--incoming { + @include ios-dark-theme { + color: $color-gray-15; + background-color: $color-signal-blue-alpha-50; + } } .module-quote__reference-warning__icon { height: 16px; width: 16px; - @include color-svg('../images/broken-link.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/icons/v2/link-broken-16.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/link-broken-16.svg', $color-gray-25); + } + @include ios-dark-theme { + @include color-svg('../images/icons/v2/link-broken-16.svg', $color-gray-90); + } +} + +.module-quote__reference-warning__icon--incoming { + @include ios-dark-theme { + @include color-svg('../images/icons/v2/link-broken-16.svg', $color-gray-15); + } } .module-quote__reference-warning__text { + @include font-caption; + margin-left: 6px; - color: $color-gray-90; - font-size: 13px; - line-height: 18px; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-dark-theme { + color: $color-gray-90; + } +} + +.module-quote__reference-warning__text--incoming { + @include ios-dark-theme { + color: $color-gray-05; + } } // Module: Embedded Contact @@ -1234,37 +1757,66 @@ } .module-embedded-contact__contact-name { - font-size: 14px; - line-height: 18px; - font-weight: 300; + @include font-body-1-bold; + margin-top: 6px; - color: $color-gray-90; max-width: 100%; white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } + @include ios-theme { + color: $color-white; + } + @include ios-dark-theme { + color: $color-gray-05; + } } .module-embedded-contact__contact-name--incoming { color: $color-white; + + @include ios-theme { + color: $color-gray-90; + } + @include ios-dark-theme { + color: $color-gray-25; + } } .module-embedded-contact__contact-method { - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; - margin-top: 3px; - color: $color-gray-60; + @include font-body-2; + margin-top: 3px; max-width: 100%; white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-white-alpha-80; + } + @include ios-theme { + color: $color-white-alpha-80; + } } .module-embedded-contact__contact-method--incoming { - color: $color-white-07; + color: $color-white-alpha-80; + + @include ios-theme { + color: $color-gray-60; + } } // Module: Contact Detail @@ -1281,12 +1833,12 @@ } .module-contact-detail__contact-name { - font-size: 20px; - font-weight: bold; + @include font-body-1-bold; } .module-contact-detail__contact-method { - font-size: 14px; + @include font-body-2; + margin-top: 10px; } @@ -1294,7 +1846,7 @@ cursor: pointer; border-radius: 4px; - background-color: $blue; + background-color: $color-signal-blue; display: inline-block; padding: 6px; margin-top: 20px; @@ -1312,6 +1864,9 @@ .module-contact-detail__send-message__inner { display: flex; align-items: center; + padding-right: 5px; + + @include font-body-2-bold; } .module-contact-detail__send-message__bubble-icon { @@ -1319,19 +1874,35 @@ width: 18px; display: inline-block; margin-right: 5px; - @include color-svg('../images/chat-bubble.svg', white); + @include light-theme { + @include color-svg( + '../images/icons/v2/message-outline-24.svg', + $color-white + ); + } + @include dark-theme { + @include color-svg('../images/icons/v2/message-solid-24.svg', $color-white); + } } .module-contact-detail__additional-contact { text-align: left; - border-top: 1px solid $color-light-10; margin-top: 15px; padding-top: 8px; + + @include light-theme { + border-top: 1px solid $color-gray-05; + } + @include dark-theme { + border-top: 1px solid $color-gray-75; + } } .module-contact-detail__additional-contact__type { - color: $color-light-45; - font-size: 12px; + @include font-caption-bold; + + color: $color-gray-45; + margin-bottom: 3px; } @@ -1341,11 +1912,15 @@ margin-top: 14px; margin-left: 1em; margin-right: 1em; - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; - color: $color-gray-60; + text-align: center; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-group-notification__change { @@ -1353,18 +1928,21 @@ } .module-group-notification__contact { - font-weight: 300; + font-weight: bold; } // Module: Reset Session Notification .module-reset-session-notification { margin-top: 14px; - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; - color: $color-gray-60; text-align: center; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } // Module: Safety Number Notification @@ -1380,46 +1958,70 @@ margin-left: auto; margin-right: auto; margin-bottom: 7px; - @include color-svg('../images/shield.svg', $color-gray-60); + + @include light-theme { + @include color-svg( + '../images/icons/v2/safety-number-outline-24.svg', + $color-gray-60 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/safety-number-solid-24.svg', + $color-gray-25 + ); + } } .module-safety-number-notification__text { - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; - color: $color-gray-60; + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-safety-number-notification__contact { - font-weight: 300; + font-weight: bold; } .module-safety-number-notification__button { + @include font-body-2-bold; + margin-top: 5px; display: inline-block; cursor: pointer; - font-size: 13px; - font-weight: 300; - line-height: 18px; + padding: 12px; - color: $color-signal-blue; - background-color: $color-light-02; border-radius: 4px; + + color: $color-signal-blue; + + @include light-theme { + background-color: $color-gray-02; + } + @include dark-theme { + background-color: $color-gray-75; + } } // Module: Verification Notification .module-verification-notification { margin-top: 14px; - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; - color: $color-gray-60; text-align: center; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-verification-notification__contact { - font-weight: 300; + font-weight: bold; } .module-verification-notification__icon--mark-verified { @@ -1428,7 +2030,13 @@ margin-left: auto; margin-right: auto; margin-bottom: 4px; - @include color-svg('../images/verified-check.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-25); + } } .module-verification-notification__icon--mark-not-verified { @@ -1437,18 +2045,32 @@ margin-left: auto; margin-right: auto; margin-bottom: 7px; - @include color-svg('../images/shield.svg', $color-gray-60); + @include light-theme { + @include color-svg( + '../images/icons/v2/safety-number-outline-24.svg', + $color-gray-60 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/safety-number-solid-24.svg', + $color-gray-25 + ); + } } // Module: Timer Notification .module-timer-notification { margin-top: 14px; - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; - color: $color-gray-60; text-align: center; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-timer-notification__icon-container { @@ -1464,30 +2086,37 @@ height: 20px; width: 20px; display: inline-block; - @include color-svg('../images/timer.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/icons/v2/timer-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/timer-24.svg', $color-gray-25); + } } .module-timer-notification__icon--disabled { - @include color-svg('../images/timer-disabled.svg', $color-gray-60); + @include light-theme { + @include color-svg( + '../images/icons/v2/timer-disabled-24.svg', + $color-gray-60 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/timer-disabled-24.svg', + $color-gray-25 + ); + } } .module-timer-notification__icon-label { - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; margin-left: 6px; - text-transform: uppercase; // Didn't seem centered otherwise margin-top: 1px; } -.module-timer-notification__message { - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; -} - .module-notification--with-click-handler { cursor: pointer; } @@ -1502,13 +2131,18 @@ // Module: Contact List Item .module-contact-list-item { - padding-top: 5px; - padding-bottom: 5px; + padding-top: 8px; + padding-bottom: 8px; display: flex; flex-direction: row; align-items: center; - color: $color-gray-60; + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-15; + } } .module-contact-list-item--with-click-handler { @@ -1520,28 +2154,34 @@ } .module-contact-list-item__text__name { - font-weight: 300; - font-size: 14px; + @include font-body-2-bold; } .module-contact-list-item__text__profile-name { - font-style: italic; + @include font-body-2-bold-italic; } .module-contact-list-item__text__additional-data { - margin-top: 3px; - font-size: 14px; + @include font-body-2; + + margin-top: 3p; } .module-contact-list-item__text__verified-icon { - @include color-svg('../images/verified-check.svg', $color-gray-60); display: inline-block; - width: 18px; - height: 18px; + width: 20px; + height: 20px; vertical-align: text-bottom; // Trying to account for the whitespace around the check mark margin-bottom: -1px; + + @include light-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-25); + } } // Module: Conversation Header @@ -1554,20 +2194,24 @@ align-items: center; height: $header-height; - color: $color-gray-90; - background-color: $color-white; - border-bottom: 1px solid $color-black-02; + @include light-theme { + color: $color-gray-90; + background-color: $color-white; + } + @include dark-theme { + color: $color-gray-02; + background-color: $color-gray-95; + } } .module-conversation-header__back-icon { - @include color-svg('../images/back.svg', $color-gray-90); display: inline-block; margin-left: -10px; margin-right: -2px; - width: 35px; - height: 35px; - min-width: 35px; + width: 24px; + height: 24px; + min-width: 24px; vertical-align: text-bottom; border: none; opacity: 0; @@ -1580,6 +2224,19 @@ &--show { opacity: 1; } + + @include light-theme { + @include color-svg( + '../images/icons/v2/chevron-left-24.svg', + $color-gray-90 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/chevron-left-24.svg', + $color-gray-02 + ); + } } .module-conversation-header__title-container { @@ -1602,6 +2259,12 @@ max-width: 100%; } +.module-conversation-header__note-to-self { + @include dark-theme { + color: $color-gray-02; + } +} + .module-conversation-header__avatar { min-width: 28px; user-select: none; @@ -1609,12 +2272,9 @@ .module-conversation-header__title { margin-left: 6px; - min-width: 0; - font-size: 16px; - line-height: 24px; - font-weight: 300; - color: $color-gray-90; + + @include font-body-1-bold; // width of avatar (28px) and our 6px left margin max-width: calc(100% - 34px); @@ -1623,18 +2283,31 @@ text-overflow: ellipsis; -webkit-user-select: text; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } } .module-conversation-header__title__profile-name { - font-style: italic; + @include font-body-1-bold-italic; } .module-conversation-header__title__verified-icon { - @include color-svg('../images/verified-check.svg', $color-gray-90); display: inline-block; width: 1.25em; height: 1.25em; vertical-align: text-bottom; + + @include light-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-90); + } + @include dark-theme { + @include color-svg('../images/icons/v2/check-24.svg', $color-gray-02); + } } .module-conversation-header__expiration { @@ -1651,10 +2324,16 @@ } .module-conversation-header__expiration__clock-icon { - @include color-svg('../images/timer.svg', $color-gray-60); height: 24px; width: 24px; display: inline-block; + + @include light-theme { + @include color-svg('../images/icons/v2/timer-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/timer-24.svg', $color-gray-25); + } } .module-conversation-header__expiration__setting { @@ -1663,7 +2342,6 @@ } .module-conversation-header__more-button { - @include color-svg('../images/more-h-24.svg', $color-gray-75); height: 24px; width: 24px; margin-left: 12px; @@ -1678,10 +2356,16 @@ &--show { opacity: 1; } + + @include light-theme { + @include color-svg('../images/icons/v2/more-horiz-24.svg', $color-gray-75); + } + @include dark-theme { + @include color-svg('../images/icons/v2/more-horiz-24.svg', $color-gray-15); + } } .module-conversation-header__search-button { - @include color-svg('../images/search-24.svg', $color-gray-75); height: 24px; width: 24px; margin-left: 12px; @@ -1696,6 +2380,13 @@ &--show { opacity: 1; } + + @include light-theme { + @include color-svg('../images/icons/v2/search-24.svg', $color-gray-75); + } + @include dark-theme { + @include color-svg('../images/icons/v2/search-24.svg', $color-gray-15); + } } // Module: Message Detail @@ -1721,12 +2412,16 @@ } .module-message-detail__label { - font-weight: 300; - padding-right: 5px; + @include font-body-1-bold; } .module-message-detail__unix-timestamp { - color: $color-light-10; + @include light-theme { + color: $color-gray-05; + } + @include dark-theme { + color: $color-gray-45; + } } .module-message-detail__delete-button-container { @@ -1737,14 +2432,22 @@ .module-message-detail__delete-button { @include button-reset; - background-color: $color-core-red; - color: $color-white; - box-shadow: 0 0 10px -3px rgba(97, 97, 97, 0.7); border-radius: 5px; - border: solid 1px $color-light-35; cursor: pointer; margin: 1em auto; padding: 1em; + + background-color: $color-accent-red; + color: $color-white; + + @include light-theme { + border: solid 1px $color-gray-45; + box-shadow: 0 0 10px -3px $color-black-alpha-60; + } + @include dark-theme { + border: solid 1px $color-gray-25; + box-shadow: 0 0 10px -3px $color-white-alpha-60; + } } .module-message-detail__contact-container { @@ -1764,8 +2467,8 @@ } .module-message-detail__contact__error { - color: $color-core-red; - font-weight: 300; + color: $color-accent-red; + font-weight: bold; } .module-message-detail__contact__status-icon { @@ -1776,9 +2479,15 @@ } .module-message-detail__contact__status-icon--sending { - @include color-svg('../images/sending.svg', $color-gray-60); animation: module-message-detail__contact__status-icon--spinning 4s linear infinite; + + @include light-theme { + @include color-svg('../images/sending.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/sending.svg', $color-gray-25); + } } @keyframes module-message-detail__contact__status-icon--spinning { @@ -1789,18 +2498,46 @@ } .module-message-detail__contact__status-icon--sent { - @include color-svg('../images/check-circle-outline.svg', $color-gray-60); + @include light-theme { + @include color-svg('../images/check-circle-outline.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/check-circle-outline.svg', $color-gray-25); + } } .module-message-detail__contact__status-icon--delivered { - @include color-svg('../images/double-check.svg', $color-gray-60); width: 18px; + + @include light-theme { + @include color-svg('../images/double-check.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/double-check.svg', $color-gray-25); + } } .module-message-detail__contact__status-icon--read { - @include color-svg('../images/read.svg', $color-gray-60); width: 18px; + + @include light-theme { + @include color-svg('../images/read.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/read.svg', $color-gray-25); + } } .module-message-detail__contact__status-icon--error { - @include color-svg('../images/error.svg', $color-core-red); + @include light-theme { + @include color-svg( + '../images/icons/v2/error-outline-12.svg', + $color-accent-red + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/error-solid-12.svg', + $color-accent-red + ); + } } .module-message-detail__contact__unidentified-delivery-icon { @@ -1810,7 +2547,13 @@ width: 20px; height: 20px; display: inline-block; - @include color-svg('../images/unidentified-delivery.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/unidentified-delivery.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/unidentified-delivery.svg', $color-gray-25); + } } .module-message-detail__contact__error-buttons { @@ -1820,18 +2563,26 @@ .module-message-detail__contact__show-safety-number { @include button-reset; padding: 4px; - color: $color-white; - background-color: $color-light-35; border-radius: 4px; + + color: $color-white; + + @include light-theme { + background-color: $color-gray-45; + } + @include dark-theme { + background-color: $color-gray-25; + } } .module-message-detail__contact__send-anyway { @include button-reset; - color: $color-white; - background-color: $color-core-red; margin-left: 5px; margin-top: 5px; padding: 4px; border-radius: 4px; + + color: $color-white; + background-color: $color-accent-red; } // Module: Media Gallery @@ -1854,9 +2605,15 @@ .module-media-gallery__tab { width: 100%; - background-color: $color-light-02; padding: 20px; text-align: center; + + @include light-theme { + background-color: $color-gray-02; + } + @include dark-theme { + background-color: $color-gray-90; + } } .module-media-gallery__tab--active { @@ -1883,9 +2640,7 @@ } .module-attachment-section__header { - font-size: 14px; - font-weight: normal; - line-height: 28px; + @include font-body-1-bold; } .module-attachment-section__items { @@ -1904,7 +2659,12 @@ } .module-document-list-item--with-separator { - border-bottom: 1px solid $color-light-02; + @include light-theme { + border-bottom: 1px solid $color-gray-02; + } + @include dark-theme { + border-bottom: 1px solid $color-gray-75; + } } .module-document-list-item__content { @@ -1921,7 +2681,7 @@ width: 48px; height: 48px; - @include color-svg('../images/file.svg', $color-light-35); + @include color-svg('../images/file.svg', $color-gray-45); } .module-document-list-item__metadata { @@ -1933,14 +2693,10 @@ margin-right: 8px; } -.module-document-list-item__file-name { - font-weight: bold; -} - .module-document-list-item__file-size { display: inline-block; margin-top: 8px; - font-size: 80%; + @include font-body-2; } .module-document-list-item__date { @@ -1954,7 +2710,7 @@ height: 94px; width: 94px; cursor: pointer; - background-color: $color-light-10; + background-color: $color-gray-05; margin-right: 4px; margin-bottom: 4px; position: relative; @@ -1975,7 +2731,7 @@ } .module-media-grid-item__icon-image { - @include color-svg('../images/image.svg', $color-light-35); + @include color-svg('../images/image.svg', $color-gray-45); } .module-media-grid-item__image-container { @@ -2004,17 +2760,20 @@ left: 50%; transform: translate(-50%, -50%); - height: 36px; - width: 36px; - @include color-svg('../images/play.svg', $color-signal-blue); + height: 24px; + width: 24px; + @include color-svg( + '../images/icons/v2/play-solid-24.svg', + $color-signal-blue + ); } .module-media-grid-item__icon-video { - @include color-svg('../images/movie.svg', $color-light-35); + @include color-svg('../images/movie.svg', $color-gray-45); } .module-media-grid-item__icon-generic { - @include color-svg('../images/file.svg', $color-light-35); + @include color-svg('../images/file.svg', $color-gray-45); } /* Module: Empty State*/ @@ -2024,14 +2783,16 @@ justify-content: center; align-items: center; flex-grow: 1; - font-size: 28px; - color: $color-light-45; + + @include font-title-1; + + color: $color-gray-45; } // Module: Conversation List Item .module-conversation-list-item { - max-width: 300px; + max-width: $left-pane-width; display: flex; flex-direction: row; padding-right: 16px; @@ -2040,8 +2801,15 @@ cursor: pointer; - &:hover { - background-color: $color-gray-05; + @include light-theme { + &:hover { + background-color: $color-gray-05; + } + } + @include dark-theme { + &:hover { + background-color: $color-gray-75; + } } } @@ -2051,7 +2819,12 @@ } .module-conversation-list-item--is-selected { - background-color: $color-gray-05; + @include light-theme { + background-color: $color-gray-15; + } + @include dark-theme { + background-color: $color-gray-65; + } } .module-conversation-list-item__avatar-container { @@ -2061,8 +2834,6 @@ } .module-conversation-list-item__unread-count { - color: $color-white; - background-color: $color-signal-blue; text-align: center; padding-top: 1px; @@ -2071,24 +2842,30 @@ position: absolute; right: -6px; - top: 6px; + top: 0px; - font-weight: 300; - font-size: 11px; - letter-spacing: 0.25px; + @include font-caption-bold; - height: 16px; - min-width: 16px; - line-height: 16px; - border-radius: 8px; + height: 20px; + min-width: 20px; + line-height: 20px; + border-radius: 10px; - box-shadow: 0px 0px 0px 1px $color-gray-02; + color: $color-white; + background-color: $color-signal-blue; + + @include light-theme { + box-shadow: 0px 0px 0px 1px $color-gray-02; + } + @include dark-theme { + box-shadow: 0px 0px 0px 1px $color-gray-90; + } } .module-conversation-list-item__content { flex-grow: 1; margin-left: 12px; - // parent - 48px (for avatar) - 16px (our right margin) + // parent - 52px (for avatar) - 12p (margin to avatar) max-width: calc(100% - 64px); display: flex; @@ -2105,41 +2882,52 @@ .module-conversation-list-item__header__name { flex-grow: 1; flex-shrink: 1; - font-size: 14px; - line-height: 18px; + + @include font-body-1-bold; overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; - font-weight: 300; - color: $color-gray-90; -} - -.module-conversation-list-item__header__name--with-unread { - font-weight: 300; + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } .module-conversation-list-item__header__timestamp { flex-shrink: 0; margin-left: 6px; - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; + @include font-caption; overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; - text-transform: uppercase; + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } +} - color: $color-gray-60; +.module-conversation-list-item__header__timestamp--with-unread { + @include font-caption-bold; } .module-conversation-list-item__header__date--has-unread { - font-weight: 300; - color: $color-gray-90; + @include font-caption-bold; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } .module-conversation-list-item__message { @@ -2152,20 +2940,30 @@ flex-grow: 1; flex-shrink: 1; - font-size: 13px; - line-height: 18px; - - color: $color-gray-60; + @include font-body-2; height: 1.3em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-conversation-list-item__message__text--has-unread { - font-weight: 300; - color: $color-gray-90; + @include font-body-2-bold; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } .module-conversation-list-item__message__draft-prefix { @@ -2184,9 +2982,14 @@ } .module-conversation-list-item__message__status-icon--sending { - @include color-svg('../images/sending.svg', $color-gray-60); animation: module-conversation-list-item__message__status-icon--spinning 4s linear infinite; + @include light-theme { + @include color-svg('../images/sending.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/sending.svg', $color-gray-45); + } } @keyframes module-conversation-list-item__message__status-icon--spinning { @@ -2197,18 +3000,44 @@ } .module-conversation-list-item__message__status-icon--sent { - @include color-svg('../images/check-circle-outline.svg', $color-light-35); + @include light-theme { + @include color-svg('../images/check-circle-outline.svg', $color-gray-25); + } + @include dark-theme { + @include color-svg('../images/check-circle-outline.svg', $color-gray-45); + } } .module-conversation-list-item__message__status-icon--delivered { - @include color-svg('../images/double-check.svg', $color-light-35); + @include light-theme { + @include color-svg('../images/double-check.svg', $color-gray-25); + } + @include dark-theme { + @include color-svg('../images/double-check.svg', $color-gray-45); + } width: 18px; } .module-conversation-list-item__message__status-icon--read { - @include color-svg('../images/read.svg', $color-light-35); + @include light-theme { + @include color-svg('../images/read.svg', $color-gray-25); + } + @include dark-theme { + @include color-svg('../images/read.svg', $color-gray-45); + } width: 18px; } .module-conversation-list-item__message__status-icon--error { - @include color-svg('../images/error.svg', $color-core-red); + @include light-theme { + @include color-svg( + '../images/icons/v2/error-outline-12.svg', + $color-accent-red + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/error-solid-12.svg', + $color-accent-red + ); + } } // Module: Avatar @@ -2228,9 +3057,15 @@ .module-avatar__label { width: 100%; text-align: center; - font-weight: 300; + font-weight: bold; text-transform: uppercase; - color: $color-white; + + @include light-theme { + color: $color-white; + } + @include dark-theme { + color: $color-gray-05; + } } .module-avatar__icon { @@ -2241,11 +3076,21 @@ } .module-avatar__icon--group { - @include color-svg('../images/profile-group.svg', $color-white); + @include light-theme { + @include color-svg('../images/profile-group.svg', $color-white); + } + @include dark-theme { + @include color-svg('../images/profile-group.svg', $color-gray-05); + } } .module-avatar__icon--direct { - @include color-svg('../images/profile-individual.svg', $color-white); + @include light-theme { + @include color-svg('../images/profile-individual.svg', $color-white); + } + @include dark-theme { + @include color-svg('../images/profile-individual.svg', $color-gray-05); + } } .module-avatar--28 { @@ -2268,47 +3113,24 @@ width: 16px; } -.module-avatar--36 { - height: 36px; - width: 36px; +.module-avatar--52 { + height: 52px; + width: 52px; img { - height: 36px; - width: 36px; + height: 52px; + width: 52px; } } -.module-avatar__label--36 { - margin-top: 1px; - width: 36px; - font-size: 16px; +.module-avatar__label--52 { + width: 52px; + font-size: 22px; letter-spacing: 0.19px; - line-height: 36px; + line-height: 52px; } -.module-avatar__icon--36 { - height: 20px; - width: 20px; -} - -.module-avatar--48 { - height: 48px; - width: 48px; - - img { - height: 48px; - width: 48px; - } -} - -.module-avatar__label--48 { - width: 48px; - font-size: 20px; - letter-spacing: 0.19px; - line-height: 48px; -} - -.module-avatar__icon--48 { +.module-avatar__icon--52 { height: 26px; width: 26px; } @@ -2337,63 +3159,54 @@ .module-avatar__icon--note-to-self { width: 70%; height: 70%; - @include color-svg('../images/note-28.svg', $color-white); + + @include light-theme { + @include color-svg('../images/note-28.svg', $color-white); + } + @include dark-theme { + @include color-svg('../images/note-28.svg', $color-gray-05); + } } .module-avatar--no-image { - background-color: $color-conversation-grey; + @include light-theme { + background-color: $color-conversation-grey; + } + @include dark-theme { + background-color: $color-conversation-grey-shade; + } } .module-avatar--signal-blue { background-color: $color-signal-blue; } -.module-avatar--red { - background-color: $color-conversation-red; + +@each $color, $value in $conversation-colors { + .module-avatar--#{$color} { + @include light-theme { + background-color: $value; + } + } } -.module-avatar--deep_orange { - background-color: $color-conversation-deep_orange; -} -.module-avatar--brown { - background-color: $color-conversation-brown; -} -.module-avatar--pink { - background-color: $color-conversation-pink; -} -.module-avatar--purple { - background-color: $color-conversation-purple; -} -.module-avatar--indigo { - background-color: $color-conversation-indigo; -} -.module-avatar--blue { - background-color: $color-conversation-blue; -} -.module-avatar--teal { - background-color: $color-conversation-teal; -} -.module-avatar--green { - background-color: $color-conversation-green; -} -.module-avatar--light_green { - background-color: $color-conversation-light_green; -} -.module-avatar--blue_grey { - background-color: $color-conversation-blue_grey; +@each $color, $value in $conversation-colors-shade { + .module-avatar--#{$color} { + @include dark-theme { + background-color: $value; + } + } } // Module: Main Header .module-main-header { height: $header-height; - width: 300px; + width: $left-pane-width; padding-left: 16px; display: flex; flex-direction: row; align-items: center; - - border-bottom: 1px solid $color-gray-15; } .module-main-header__search { @@ -2403,16 +3216,26 @@ .module-main-header__search__input { height: 28px; - width: 228px; - border-radius: 14px; - border: solid 1px $color-gray-15; + // 320 - 28 (avatar) - 32 (left/right margin) - 12 (space to avatar) + width: 248px; padding-left: 30px; padding-right: 5px; - color: $color-gray-90; - font-size: 14px; + border-radius: 14px; + border: none; + + @include font-body-2; + + @include light-theme { + background-color: $color-gray-05; + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + background-color: $color-gray-95; + } &:placeholder { color: $color-gray-45; @@ -2440,7 +3263,13 @@ width: 16px; cursor: text; - @include color-svg('../images/search.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/icons/v2/search-16.svg', $color-gray-75); + } + @include dark-theme { + @include color-svg('../images/icons/v2/search-16.svg', $color-gray-25); + } } .module-main-header__search__in-conversation-pill { @@ -2451,7 +3280,6 @@ border-radius: 14px; width: 42px; - background-color: $color-gray-05; display: flex; flex-direction: row; @@ -2460,6 +3288,13 @@ // Overriding some default button styling border: none; padding: 0; + + @include light-theme { + background-color: $color-gray-15; + } + @include dark-theme { + background-color: $color-gray-75; + } } .module-main-header__search__in-conversation-pill__avatar-container { margin-left: 4px; @@ -2473,23 +3308,47 @@ height: 16px; width: 16px; - @include color-svg('../images/profile-solid-16.svg', $color-white); + @include light-theme { + @include color-svg( + '../images/icons/v2/profile-circle-outline-24.svg', + $color-white + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/profile-circle-solid-24.svg', + $color-gray-05 + ); + } } .module-main-header__search__in-conversation-pill__x-button { margin-left: 2px; - @include color-svg('../images/x.svg', $color-gray-60); + height: 16px; width: 16px; + + @include light-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-25); + } } .module-main-header__search__cancel-icon { position: absolute; right: 8px; - top: 7px; - height: 14px; - width: 14px; + top: 5px; + height: 18px; + width: 18px; cursor: pointer; - @include color-svg('../images/x-16.svg', $color-gray-60); + + @include light-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-25); + } } // Module: Image @@ -2502,7 +3361,12 @@ } .module-image--with-background { - background-color: $color-white; + @include light-theme { + background-color: $color-white; + } + @include dark-theme { + background-color: $color-black; + } } .module-image__caption-icon { @@ -2554,18 +3418,30 @@ z-index: 1; left: 0; right: 0; - box-shadow: inset 0px 0px 0px 1px $color-black-015; + + @include light-theme { + box-shadow: inset 0px 0px 0px 1px $color-black-alpha-20; + } + @include dark-theme { + box-shadow: inset 0px 0px 0px 1px $color-white-alpha-20; + } } .module-image__border-overlay--dark { - background-color: $color-black-02; + background-color: $color-black-alpha-20; } .module-image__loading-placeholder { display: inline-flex; flex-direction: row; align-items: center; - background-color: $color-black-015; + + @include light-theme { + background-color: $color-black-alpha-20; + } + @include dark-theme { + background-color: $color-white-alpha-20; + } } .module-image__image { @@ -2573,7 +3449,8 @@ // redundant with attachment-container, but we get cursor flashing on move otherwise cursor: pointer; - margin-bottom: -3px; + // Seems to be related to body text size + margin-bottom: -5px; } .module-image__bottom-overlay { @@ -2621,9 +3498,12 @@ left: 50%; transform: translate(-50%, -50%); - height: 36px; - width: 36px; - @include color-svg('../images/play.svg', $color-signal-blue); + height: 24px; + width: 24px; + @include color-svg( + '../images/icons/v2/play-solid-24.svg', + $color-signal-blue + ); } .module-image__text-container { @@ -2636,9 +3516,7 @@ color: $color-white; - font-size: 20px; - font-weight: normal; - letter-spacing: 0; + @include font-body-1; text-align: center; } @@ -2700,20 +3578,34 @@ .module-typing-animation__dot { border-radius: 50%; - background-color: $color-gray-60; height: 6px; width: 6px; opacity: 0.4; + + @include light-theme { + background-color: $color-gray-60; + } + @include dark-theme { + background-color: $color-white; + } + @include ios-theme { + background-color: $color-gray-60; + } } .module-typing-animation__dot--light { border-radius: 50%; - background-color: $color-white; height: 6px; width: 6px; opacity: 0.4; + + background-color: $color-white; + + @include ios-theme { + background-color: $color-gray-60; + } } @keyframes typing-animation-first { @@ -2788,7 +3680,7 @@ height: 20px; z-index: 2; - @include color-svg('../images/x-16.svg', $color-black); + @include color-svg('../images/icons/v2/x-24.svg', $color-black); } .module-attachments__rail { @@ -2811,9 +3703,17 @@ display: inline-block; position: relative; border-radius: 4px; - box-shadow: inset 0px 0px 0px 1px $color-black-015; - background-color: $color-gray-05; vertical-align: middle; + + @include light-theme { + box-shadow: inset 0px 0px 0px 1px $color-black-alpha-20; + background-color: $color-gray-05; + } + @include dark-theme { + box-shadow: inset 0px 0px 0px 1px $color-gray-45; + background-color: $color-gray-75; + color: $color-gray-02; + } } .module-staged-generic-attachment__close-button { @@ -2824,7 +3724,13 @@ width: 16px; height: 16px; z-index: 2; - @include color-svg('../images/x-16.svg', $color-black); + + @include light-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-black); + } + @include dark-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-45); + } } .module-staged-generic-attachment__icon { @@ -2864,13 +3770,12 @@ } .module-staged-generic-attachment__filename { + @include font-caption; + margin: 7px; margin-top: 5px; text-align: center; - font-family: Roboto; - font-size: 14px; - overflow: hidden; height: 2.4em; display: -webkit-box; @@ -2906,7 +3811,7 @@ width: 30px; height: 30px; z-index: 2; - @include color-svg('../images/x-16.svg', $color-white); + @include color-svg('../images/icons/v2/x-24.svg', $color-white); } .module-caption-editor__media-container { @@ -2966,7 +3871,6 @@ height: 36px; width: 40em; - font-size: 14px; color: $color-white; border: 1px solid $color-white; @@ -2977,7 +3881,7 @@ padding-right: 65px; &:placeholder { - color: $color-white-07; + color: $color-white-alpha-80; } &:focus { border: 1px solid $color-signal-blue; @@ -3007,7 +3911,7 @@ .module-staged-placeholder-attachment { margin: 1px; border-radius: 4px; - border: 1px solid $color-gray-25; + height: 120px; width: 120px; display: inline-block; @@ -3015,8 +3919,18 @@ cursor: pointer; position: relative; - &:hover { - background: $color-gray-05; + @include light-theme { + border: 1px solid $color-gray-25; + &:hover { + background: $color-gray-05; + } + } + @include dark-theme { + border: 1px solid $color-gray-60; + + &:hover { + background: $color-gray-75; + } } } @@ -3030,7 +3944,12 @@ height: 36px; width: 36px; - @include color-svg('../images/plus-36.svg', $color-gray-45); + @include light-theme { + @include color-svg('../images/icons/v2/plus-24.svg', $color-gray-45); + } + @include dark-theme { + @include color-svg('../images/icons/v2/plus-24.svg', $color-gray-60); + } } // Module: Staged Link Preview @@ -3048,11 +3967,16 @@ align-items: center; } .module-staged-link-preview__loading { - color: $color-gray-60; - font-size: 14px; text-align: center; flex-grow: 1; flex-shrink: 1; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-staged-link-preview__icon-container { @@ -3062,10 +3986,14 @@ margin-right: 20px; } .module-staged-link-preview__title { - color: $color-gray-90; - font-weight: 300; - font-size: 14px; - line-height: 18px; + @include font-body-1-bold; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } overflow: hidden; display: -webkit-box; @@ -3073,12 +4001,17 @@ -webkit-box-orient: vertical; } .module-staged-link-preview__location { + @include font-body-2; + margin-top: 4px; - color: $color-gray-60; - font-size: 11px; - height: 16px; - letter-spacing: 0.25px; text-transform: uppercase; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-staged-link-preview__close-button { cursor: pointer; @@ -3089,7 +4022,12 @@ height: 16px; width: 16px; - @include color-svg('../images/x-16.svg', $color-gray-60); + @include light-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-25); + } } // Module: Spinner @@ -3107,22 +4045,29 @@ top: 0; left: 0; - @include color-svg('../images/spinner-track-56.svg', $color-white-04); z-index: 2; height: 100%; width: 100%; + + @include color-svg('../images/spinner-track-56.svg', $color-white-alpha-40); } .module-spinner__arc { position: absolute; top: 0; left: 0; - @include color-svg('../images/spinner-56.svg', $color-gray-60); z-index: 3; height: 100%; width: 100%; animation: spinner-arc-animation 1000ms linear infinite; + + @include light-theme { + @include color-svg('../images/spinner-56.svg', $color-gray-60); + } + @include dark-theme { + @include color-svg('../images/spinner-56.svg', $color-gray-05); + } } @keyframes spinner-arc-animation { @@ -3148,45 +4093,68 @@ .module-spinner__circle--small { -webkit-mask: url('../images/spinner-track-24.svg') no-repeat center; -webkit-mask-size: 100%; - height: 24px; - width: 24px; } .module-spinner__arc--small { -webkit-mask: url('../images/spinner-24.svg') no-repeat center; -webkit-mask-size: 100%; - height: 24px; - width: 24px; -} - -.module-spinner__container--mini { - height: 14px; - width: 14px; -} -.module-spinner__circle--mini { - -webkit-mask: url('../images/spinner-track-24.svg') no-repeat center; - -webkit-mask-size: 100%; - height: 14px; - width: 14px; -} -.module-spinner__arc--mini { - -webkit-mask: url('../images/spinner-24.svg') no-repeat center; - -webkit-mask-size: 100%; - height: 14px; - width: 14px; } .module-spinner__circle--incoming { - background-color: $color-white-04; + background-color: $color-white-alpha-40; } .module-spinner__arc--incoming { - background-color: $color-white; + @include light-theme { + background-color: $color-white; + } + @include dark-theme { + background-color: $color-gray-02; + } + @include ios-theme { + background-color: $color-gray-60; + } + @include ios-dark-theme { + background-color: $color-gray-02; + } +} + +.module-spinner__circle--outgoing { + @include dark-theme { + background-color: $color-white-alpha-40; + } + @include ios-theme { + background-color: $color-white-alpha-40; + } + @include ios-dark-theme { + background-color: $color-white-alpha-40; + } +} +.module-spinner__arc--outgoing { + @include dark-theme { + background-color: $color-gray-05; + } + @include ios-theme { + background-color: $color-white; + } + @include ios-dark-theme { + background-color: $color-gray-05; + } } .module-spinner__circle--on-background { - background-color: $color-gray-05; + @include light-theme { + background-color: $color-gray-05; + } + @include dark-theme { + background-color: $color-gray-75; + } } .module-spinner__arc--on-background { - background-color: $color-gray-60; + @include light-theme { + background-color: $color-gray-60; + } + @include dark-theme { + background-color: $color-gray-25; + } } // Module: Highlighted Message Body @@ -3203,14 +4171,14 @@ } .module-search-results__conversations-header { - height: 36px; - line-height: 36px; + @include font-body-1-bold; + height: 36px; margin-left: 16px; - font-size: 14px; - font-weight: 300; - letter-spacing: 0; + @include dark-theme { + color: $color-gray-05; + } } .module-search-results__no-results { @@ -3222,25 +4190,25 @@ } .module-search-results__contacts-header { - height: 36px; - line-height: 36px; + @include font-body-1-bold; + height: 36px; margin-left: 16px; - font-size: 14px; - font-weight: 300; - letter-spacing: 0; + @include dark-theme { + color: $color-gray-05; + } } .module-search-results__messages-header { - height: 36px; - line-height: 36px; + @include font-body-1-bold; + height: 36px; margin-left: 16px; - font-size: 14px; - font-weight: 300; - letter-spacing: 0; + @include dark-theme { + color: $color-gray-05; + } } .module-search-results__spinner-container { @@ -3257,7 +4225,7 @@ padding-left: 16px; padding-right: 16px; min-height: 64px; - max-width: 300px; + max-width: $left-pane-width; display: flex; flex-direction: row; @@ -3265,12 +4233,22 @@ cursor: pointer; &:hover { - background-color: $color-gray-05; + @include light-theme { + background-color: $color-gray-05; + } + @include dark-theme { + background-color: $color-gray-75; + } } } .module-message-search-result--is-selected { - background-color: $color-gray-05; + @include light-theme { + background-color: $color-gray-05; + } + @include dark-theme { + background-color: $color-gray-75; + } } .module-message-search-result__text { @@ -3291,25 +4269,28 @@ } .module-message-search-result__header__from { + @include font-body-1; + flex-grow: 1; flex-shrink: 1; - font-size: 14px; - line-height: 18px; overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; - color: $color-gray-90; + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } .module-message-search-result__header__timestamp { flex-shrink: 0; margin-left: 6px; - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; + @include font-caption; overflow-x: hidden; white-space: nowrap; @@ -3317,26 +4298,27 @@ text-transform: uppercase; - color: $color-gray-60; -} - -.module-message-search-result__header__name { - font-weight: 300; -} -.module-mesages-search-result__header__group { - font-weight: 300; + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-25; + } } .module-message-search-result__body { + @include font-body-2; + margin-top: 1px; flex-grow: 1; flex-shrink: 1; - font-size: 13px; - - color: $color-gray-60; - - max-height: 3.6em; + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-15; + } overflow: hidden; display: -webkit-box; @@ -3353,13 +4335,10 @@ // Module: Left Pane .module-left-pane { - background-color: $color-gray-02; - border-right: 1px solid $color-gray-15; - display: inline-flex; flex-direction: column; - width: 300px; + width: $left-pane-width; height: 100%; } @@ -3376,33 +4355,64 @@ flex-direction: row; align-items: center; - border-bottom: 1px solid $color-gray-15; + @include light-theme { + border-bottom: 1px solid $color-gray-15; + } + @include dark-theme { + border-bottom: 1px solid $color-gray-75; + } } .module-left-pane__to-inbox-button { - margin-left: 2px; + margin-left: 7px; + margin-right: 5px; - width: 35px; - height: 35px; + width: 24px; + height: 24px; cursor: pointer; - @include color-svg('../images/back.svg', $color-gray-60); + + @include light-theme { + @include color-svg( + '../images/icons/v2/chevron-left-24.svg', + $color-gray-60 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/chevron-left-24.svg', + $color-gray-25 + ); + } } .module-left-pane__archive-header-text { - color: $color-gray-90; - font-size: 16px; - font-weight: 300px; + @include font-body-1-bold; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } .module-left-pane__archive-helper-text { + @include font-body-2; + flex-grow: 0; flex-shrink: 0; padding: 1em; - font-size: 12px; - color: $color-gray-60; - background-color: $color-gray-05; + + @include light-theme { + color: $color-gray-60; + background-color: $color-gray-05; + } + @include dark-theme { + color: $color-gray-25; + background-color: $color-gray-75; + } } .module-left-pane__list { @@ -3415,28 +4425,44 @@ } .module-left-pane__archived-button { - font-size: 14px; + @include font-body-1-bold; + height: 64px; line-height: 64px; text-align: center; - font-weight: 300; - color: $color-gray-60; - cursor: pointer; - &:hover { - background-color: $color-gray-05; + + @include light-theme { + color: $color-gray-60; + + &:hover { + background-color: $color-gray-05; + } + } + @include dark-theme { + color: $color-gray-25; + &:hover { + background-color: $color-gray-75; + } } } .module-left-pane__archived-button__archived-count { - font-size: 12px; - font-weight: 300; - color: $color-gray-60; - background-color: $color-gray-05; + @include font-body-2-bold; + padding: 6px; padding-top: 1px; padding-bottom: 1px; border-radius: 10px; + + @include light-theme { + color: $color-gray-60; + background-color: $color-gray-05; + } + @include dark-theme { + color: $color-gray-25; + background-color: $color-gray-75; + } } // Module: Start New Conversation @@ -3452,8 +4478,15 @@ cursor: pointer; - &:hover { - background-color: $color-gray-05; + @include light-theme { + &:hover { + background-color: $color-gray-05; + } + } + @include dark-theme { + &:hover { + background-color: $color-gray-75; + } } } @@ -3462,14 +4495,24 @@ } .module-start-new-conversation__number { - font-weight: 300; + font-weight: bold; + + @include dark-theme { + color: $color-gray-05; + } } .module-start-new-conversation__text { margin-top: 3px; - font-style: italic; - color: $color-gray-60; - font-size: 13px; + + @include font-body-1-italic; + + @include light-theme { + color: $color-gray-60; + } + @include dark-theme { + color: $color-gray-45; + } } // Module: Timeline Loading Row @@ -3584,7 +4627,7 @@ &--selected { @include light-theme { - background: $color-gray-10; + background: $color-gray-05; } @include dark-theme { background: $color-gray-60; @@ -3604,10 +4647,16 @@ &--recents { &::after { @include light-theme { - @include color-svg('../images/recent-outline.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/recent-outline-20.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/recent-outline.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/recent-solid-20.svg', + $color-gray-25 + ); } } } @@ -3615,10 +4664,10 @@ &--add-pack { &::after { @include light-theme { - @include color-svg('../images/plus-20.svg', $color-gray-60); + @include color-svg('../images/icons/v2/plus-20.svg', $color-gray-60); } @include dark-theme { - @include color-svg('../images/plus-20.svg', $color-gray-25); + @include color-svg('../images/icons/v2/plus-20.svg', $color-gray-25); } } } @@ -3632,8 +4681,8 @@ &::after { content: ''; display: block; - min-width: 12px; - min-height: 12px; + min-width: 16px; + min-height: 16px; } @include light-theme { @@ -3651,10 +4700,16 @@ &::after { @include light-theme { - @include color-svg('../images/chevron-left-12.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/chevron-left-16.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/chevron-left-12.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/chevron-left-16.svg', + $color-gray-25 + ); } } } @@ -3665,10 +4720,16 @@ &::after { @include light-theme { - @include color-svg('../images/chevron-right-12.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/chevron-right-16.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/chevron-right-12.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/chevron-right-16.svg', + $color-gray-25 + ); } } } @@ -3684,7 +4745,10 @@ position: absolute; left: 14px; top: 2px; - @include color-svg('../images/error-filled.svg', $color-core-red); + @include color-svg( + '../images/icons/v2/error-solid-24.svg', + $color-accent-red + ); } } @@ -3716,7 +4780,7 @@ min-height: 20px; max-width: 20px; max-height: 20px; - background-color: $color-gray-10; + background-color: $color-gray-05; } .module-sticker-picker__body { @@ -3778,9 +4842,8 @@ } &__text { - font-family: Roboto; - font-weight: 300; - font-size: 14px; + @include font-body-1-bold; + text-align: center; padding: 8px 16px 12px 0; @@ -3798,10 +4861,10 @@ &--error { @include light-theme() { - color: $color-core-red; + color: $color-accent-red; } @include dark-theme() { - color: $color-core-red; + color: $color-accent-red; } } @@ -3831,9 +4894,7 @@ .module-sticker-manager__text { height: 18px; - font-size: 13px; - font-weight: normal; - font-family: Roboto; + letter-spacing: 0px; line-height: 18px; @@ -3846,8 +4907,7 @@ } &--heading { - font-size: 14px; - font-weight: 300; + @include font-body-1-bold; @include light-theme() { color: $color-gray-90; @@ -3865,8 +4925,6 @@ align-items: center; height: 64px; border-radius: 8px; - font-family: Roboto-Light; - font-size: 13px; @include light-theme { background: $color-gray-02; @@ -3888,8 +4946,16 @@ cursor: pointer; } - & + & { - border-top: 1px solid $color-gray-15; + @include light-theme { + & + & { + border-top: 1px solid $color-gray-15; + } + } + + @include dark-theme { + & + & { + border-top: 1px solid $color-gray-75; + } } &__cover { @@ -3899,7 +4965,7 @@ &__cover-placeholder { width: 48px; height: 48px; - background: $color-gray-10; + background: $color-gray-05; } &__meta { @@ -3917,11 +4983,9 @@ &__author { flex: 1; - font-family: Roboto-Light; - font-size: 13px; @include light-theme() { - color: $color-gray-60; + color: $color-gray-45; } @include dark-theme() { @@ -3955,10 +5019,16 @@ min-width: 24px; min-height: 24px; @include light-theme { - @include color-svg('../images/more-h-24.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/more-horiz-24.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/more-h-24.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/more-horiz-24.svg', + $color-gray-25 + ); } } } @@ -3969,10 +5039,10 @@ .module-sticker-manager__install-button { background: none; border: 0; - font-family: Roboto; color: $color-gray-90; - font-weight: 300; - font-size: 13px; + + @include font-body-1-bold; + height: 24px; background: $color-gray-05; border-radius: 12px; @@ -4000,7 +5070,7 @@ .module-sticker-manager__preview-modal { &__overlay { - background: rgba(0, 0, 0, 0.4); + background: $color-black-alpha-40; position: fixed; left: 0; top: 0; @@ -4015,7 +5085,7 @@ &__container { position: relative; border-radius: 8px; - box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 4px 12px 0 $color-black-alpha-20; width: 440px; height: 360px; overflow: hidden; @@ -4030,7 +5100,7 @@ } &__error { - color: $color-core-red; + color: $color-accent-red; display: flex; justify-content: center; align-items: center; @@ -4038,8 +5108,8 @@ width: 100%; height: 100%; padding: 0 80px 30px 80px; - font-family: Roboto; - font-weight: 300; + + @include font-body-1-bold; } &__header { @@ -4052,8 +5122,8 @@ align-items: center; &__text { - font-weight: 300; - font-size: 14px; + @include font-body-1-bold; + color: $color-gray-90; @include dark-theme { color: $color-gray-05; @@ -4065,10 +5135,10 @@ width: 20px; height: 20px; @include light-theme { - @include color-svg('../images/x.svg', $color-gray-60); + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); } @include dark-theme { - @include color-svg('../images/x.svg', $color-gray-05); + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-05); } } } @@ -4139,10 +5209,8 @@ &__title { margin: 0; - font-size: 16px; - font-weight: 300; - height: 20px; - line-height: 20px; + + @include font-body-1-bold; @include light-theme { color: $color-gray-90; @@ -4155,13 +5223,10 @@ &__author { margin: 0; - font-family: Roboto-Light; - font-size: 13px; height: 18px; - line-height: 18px; @include light-theme { - color: $color-gray-60; + color: $color-gray-45; } @include dark-theme { @@ -4226,16 +5291,22 @@ flex-shrink: 0; @include light-theme { - @include color-svg('../images/sticker-filled.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/sticker-outline-24.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/sticker-filled.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/sticker-solid-24.svg', + $color-gray-25 + ); } } &--active { @include light-theme() { - background: $color-gray-10; + background: $color-gray-05; } @include dark-theme() { @@ -4297,12 +5368,11 @@ &__image-placeholder { width: 20px; height: 20px; - background-color: $color-gray-10; + background-color: $color-gray-05; } &__text { margin-left: 4px; - font-size: 14px; cursor: default; @include light-theme { @@ -4314,7 +5384,7 @@ } &__title { - font-weight: 300; + font-weight: bold; } } @@ -4327,7 +5397,7 @@ // &__image { // width: 52px; // height: 52px; - // background: $color-gray-10; + // background: $color-gray-05; // } &__meta { @@ -4347,15 +5417,13 @@ &__title { margin: 0; - font-size: 14px; - font-weight: 300; + + @include font-body-1-bold; height: 16px; - line-height: 20px; } &__subtitle { margin-top: 3px; - font-size: 14px; height: 16px; } } @@ -4369,11 +5437,11 @@ border: none; @include light-theme { - @include color-svg('../images/x.svg', $color-gray-60); + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); } @include dark-theme { - @include color-svg('../images/x.svg', $color-gray-05); + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-05); } } } @@ -4383,7 +5451,7 @@ // Module: confirmation dialog .module-confirmation-dialog { &__overlay { - background: rgba(0, 0, 0, 0.4); + background: $color-black-alpha-40; position: fixed; left: 0; top: 0; @@ -4428,9 +5496,8 @@ display: flex; justify-content: center; align-items: center; - font-size: 13px; - font-weight: 500; - font-family: Roboto; + + @include font-body-1-bold; @include light-theme() { background: $color-white; @@ -4447,13 +5514,13 @@ &--negative { @include light-theme() { border: none; - background: $color-core-red; + background: $color-accent-red; color: $color-white; } @include dark-theme() { border: none; - background: $color-core-red; + background: $color-accent-red; color: $color-white; } } @@ -4461,13 +5528,13 @@ &--affirmative { @include light-theme() { border: none; - background: $color-core-green; + background: $color-accent-green; color: $color-white; } @include dark-theme() { border: none; - background: $color-core-green; + background: $color-accent-green; color: $color-white; } } @@ -4502,6 +5569,8 @@ margin-left: 8px; position: relative; + @include font-body-2; + &::after { display: block; content: ''; @@ -4512,18 +5581,27 @@ top: 6px; @include light-theme { - @include color-svg('../images/search.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/search-16.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/search.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/search-16.svg', + $color-gray-25 + ); } } &__input { width: 100%; height: 28px; + + @include font-body-1; + line-height: 28px; - font-size: 14px; + border-radius: 17px; border-width: 1px; border-style: solid; @@ -4588,7 +5666,7 @@ &--selected { @include light-theme { - background: $color-gray-10; + background: $color-gray-05; } @include dark-theme { @@ -4611,10 +5689,16 @@ &--search { &::after { @include light-theme { - @include color-svg('../images/search.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/search-16.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/search.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/search-16.svg', + $color-gray-25 + ); } } } @@ -4622,10 +5706,10 @@ &--close { &::after { @include light-theme { - @include color-svg('../images/x.svg', $color-gray-60); + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-60); } @include dark-theme { - @include color-svg('../images/x.svg', $color-gray-25); + @include color-svg('../images/icons/v2/x-24.svg', $color-gray-25); } } } @@ -4634,13 +5718,13 @@ &::after { @include light-theme { @include color-svg( - '../images/recent-outline-20.svg', + '../images/icons/v2/recent-outline-20.svg', $color-gray-60 ); } @include dark-theme { @include color-svg( - '../images/recent-outline-20.svg', + '../images/icons/v2/recent-solid-20.svg', $color-gray-25 ); } @@ -4651,12 +5735,15 @@ &::after { @include light-theme { @include color-svg( - '../images/emoji-outline-20.svg', + '../images/icons/v2/emoji-smiley-outline-20.svg', $color-gray-60 ); } @include dark-theme { - @include color-svg('../images/emoji-filled-20.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/emoji-smiley-solid-20.svg', + $color-gray-25 + ); } } } @@ -4668,13 +5755,13 @@ &::after { @include light-theme { @include color-svg( - '../images/emoji-#{$cat}-outline-20.svg', + '../images/icons/v2/emoji-#{$cat}-outline-20.svg', $color-gray-60 ); } @include dark-theme { @include color-svg( - '../images/emoji-#{$cat}-filled-20.svg', + '../images/icons/v2/emoji-#{$cat}-solid-20.svg', $color-gray-25 ); } @@ -4745,16 +5832,22 @@ flex-shrink: 0; @include light-theme { - @include color-svg('../images/smile.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/emoji-smiley-outline-24.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/smile.svg', $color-gray-25); + @include color-svg( + '../images/icons/v2/emoji-smiley-solid-24.svg', + $color-gray-25 + ); } } &--active { @include light-theme() { - background: $color-gray-10; + background: $color-gray-05; } @include dark-theme() { @@ -4819,28 +5912,34 @@ margin-bottom: 7px; @include light-theme { - @include color-svg('../images/error.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/error-outline-24.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/error.svg', $color-dark-30); + @include color-svg('../images/icons/v2/error-solid-24.svg', $color-gray-25); } } .module-unsupported-message__icon--can-process { @include light-theme { - @include color-svg('../images/check-circle-outline.svg', $color-gray-60); + @include color-svg( + '../images/icons/v2/check-circle-outline-24.svg', + $color-gray-60 + ); } @include dark-theme { - @include color-svg('../images/check-circle-outline.svg', $color-dark-30); + @include color-svg( + '../images/icons/v2/check-circle-solid-24.svg', + $color-gray-25 + ); } } .module-unsupported-message__text { - font-size: 14px; - line-height: 20px; - letter-spacing: 0.3px; max-width: 396px; margin-left: auto; margin-right: auto; @@ -4849,27 +5948,27 @@ color: $color-gray-60; } @include dark-theme { - color: $color-dark-30; + color: $color-gray-25; } } .module-unsupported-message__contact { - font-weight: 300; + font-weight: bold; } .module-unsupported-message__button { margin-top: 5px; display: inline-block; cursor: pointer; - font-size: 13px; - font-weight: 300; - line-height: 18px; + + @include font-body-1-bold; + padding: 12px; border-radius: 4px; @include light-theme { color: $color-signal-blue; - background-color: $color-light-02; + background-color: $color-gray-02; } @include dark-theme { color: $color-signal-blue; @@ -4915,13 +6014,36 @@ // Module: CompositionInput .module-composition-input { &__input { - line-height: 20px; - border: 1px solid; + @include font-body-1; + + border: none; border-radius: 18px; - font-size: 14px; overflow: hidden; word-break: break-word; + &:placeholder { + color: $color-gray-45; + } + + // Override draft.js styles + .public-DraftEditorPlaceholder-root { + color: $color-gray-45; + } + + @include light-theme() { + // Same as background color + border: 1px solid $color-white; + background-color: $color-gray-05; + color: $color-gray-90; + } + + @include dark-theme() { + // Same as background color + border: 1px solid $color-gray-95; + background-color: $color-gray-75; + color: $color-gray-05; + } + &__scroller { padding: 7px 12px; min-height: 32px; @@ -4936,36 +6058,13 @@ } } - @include light-theme() { - border-color: $color-gray-15; - background: $color-white; - color: $color-gray-90; - } - - @include dark-theme() { - border-color: $color-gray-60; - background: $color-dark-85; - color: $color-gray-05; - } - &:focus-within { @include light-theme() { - border-color: $color-signal-blue; + border: 1px solid $color-signal-blue; } @include dark-theme() { - border-color: $color-signal-blue; - } - } - - // Override draft.js styles - .public-DraftEditorPlaceholder-root { - @include light-theme() { - color: $color-gray-45; - } - - @include dark-theme() { - color: $color-gray-45; + border: 1px solid $color-signal-blue; } } } @@ -4996,8 +6095,8 @@ background: none; border: none; width: 100%; - font-size: 13px; - font-family: Roboto; + + @include font-body-2; @include light-theme() { color: $color-gray-60; @@ -5014,7 +6113,7 @@ &--selected, &:hover { @include light-theme() { - background: $color-gray-10; + background: $color-gray-05; color: $color-gray-90; } @@ -5052,10 +6151,11 @@ } &__button-cell { + margin-top: 2px; display: flex; justify-content: center; align-items: center; - width: 44px; + width: 40px; height: 100%; flex-shrink: 0; &--mic-active { @@ -5080,7 +6180,7 @@ width: 24px; height: 24px; flex-shrink: 0; - @include color-svg('../images/send.svg', $color-signal-blue); + @include color-svg('../images/icons/v2/send-24.svg', $color-signal-blue); } } &__input { @@ -5116,17 +6216,25 @@ border: none; @include light-theme() { - @include color-svg('../images/expand-up.svg', $color-gray-45, false); + @include color-svg( + '../images/icons/v2/expand-up-20.svg', + $color-gray-45, + false + ); } @include dark-theme() { - @include color-svg('../images/expand-up.svg', $color-gray-45, false); + @include color-svg( + '../images/icons/v2/expand-up-20.svg', + $color-gray-45, + false + ); } &--large-active { @include light-theme() { @include color-svg( - '../images/collapse-down.svg', + '../images/icons/v2/collapse-down-20.svg', $color-gray-45, false ); @@ -5134,7 +6242,7 @@ @include dark-theme() { @include color-svg( - '../images/collapse-down.svg', + '../images/icons/v2/collapse-down-20.svg', $color-gray-45, false ); @@ -5159,25 +6267,27 @@ .module-last-seen-indicator { padding-top: 25px; padding-bottom: 35px; - margin-left: 28px; - margin-right: 28px; } .module-last-seen-indicator__bar { - background-color: $color-light-60; + background-color: $color-gray-45; width: 100%; - height: 4px; + height: 1px; } .module-last-seen-indicator__text { margin-top: 3px; - font-size: 11px; - line-height: 16px; - letter-spacing: 0.3px; - text-transform: uppercase; + + @include font-body-2-bold; text-align: center; - color: $color-light-90; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-05; + } } // Module: Scroll Down Button @@ -5194,13 +6304,24 @@ width: 44px; border-radius: 22px; text-align: center; - background-color: $color-light-35; border: none; - box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.2); outline: none; - &:hover { - background-color: $color-light-45; + @include light-theme { + background-color: $color-gray-25; + &:hover { + background-color: $color-gray-45; + } + + box-shadow: 0px 3px 5px 0px $color-black-alpha-20; + } + @include dark-theme { + background-color: $color-gray-45; + &:hover { + background-color: $color-gray-25; + } + + box-shadow: 0px 3px 5px 0px $color-white-alpha-20; } } @@ -5208,28 +6329,37 @@ background-color: $color-signal-blue; &:hover { - background-color: #1472bd; + background-color: $color-ios-blue-shade; } } .module-scroll-down__icon { - @include color-svg('../images/down.svg', $color-white); - height: 100%; - width: 100%; + @include color-svg('../images/icons/v2/arrow-down-24.svg', $color-white); + height: 36px; + width: 36px; + margin-left: -3px; + margin-top: -1px; } // Third-party module: react-contextmenu .react-contextmenu { - background-color: $color-light-02; border-radius: 4px; min-width: 160px; padding: 0px; padding-top: 8px; padding-bottom: 8px; - border: 1px solid $color-dark-05; opacity: 0; user-select: none; + + @include light-theme { + background-color: $color-gray-02; + border: 1px solid $color-gray-02; + } + @include dark-theme { + background-color: $color-gray-90; + border: 1px solid $color-gray-60; + } } .react-contextmenu--visible { @@ -5238,17 +6368,22 @@ } .react-contextmenu-item { - color: $color-gray-90; - cursor: pointer; - font-size: 13px; - line-height: 18px; white-space: nowrap; + @include font-body-2; + padding-left: 16px; padding-top: 3px; padding-bottom: 2px; padding-right: 16px; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } } .react-contextmenu-item--checked:before { @@ -5256,7 +6391,13 @@ display: inline-block; position: absolute; right: 7px; - color: $color-gray-90; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } } .react-contextmenu-item.react-contextmenu-submenu { @@ -5273,13 +6414,25 @@ display: inline-block; position: absolute; right: 7px; - color: $color-gray-90; + + @include light-theme { + color: $color-gray-90; + } + @include dark-theme { + color: $color-gray-02; + } } .react-contextmenu-item.react-contextmenu-item--active, .react-contextmenu-item.react-contextmenu-item--selected { color: $color-white; - background-color: $color-light-35; + + @include light-theme { + background-color: $color-gray-25; + } + @include dark-theme { + background-color: $color-gray-45; + } } .react-contextmenu-item.react-contextmenu-item--active.react-contextmenu-item--checked:before, diff --git a/stylesheets/_options.scss b/stylesheets/_options.scss index a28bbafcb1ea..6e8b6e1ae1f0 100644 --- a/stylesheets/_options.scss +++ b/stylesheets/_options.scss @@ -11,5 +11,5 @@ } .intl-tel-input .country-list .country .country-name { - color: #000; + color: $color-black; } diff --git a/stylesheets/_progress.scss b/stylesheets/_progress.scss index 2b7d7b421ac8..9bbff8eaa749 100644 --- a/stylesheets/_progress.scss +++ b/stylesheets/_progress.scss @@ -9,31 +9,31 @@ .progress-bar-striped { background-image: -webkit-linear-gradient( 45deg, - rgba(255, 255, 255, 0.75) 25%, + $color-white-alpha-60 25%, transparent 25%, transparent 50%, - rgba(255, 255, 255, 0.75) 50%, - rgba(255, 255, 255, 0.75) 75%, + $color-white-alpha-60 50%, + $color-white-alpha-60 75%, transparent 75%, transparent ); background-image: -o-linear-gradient( 45deg, - rgba(255, 255, 255, 0.75) 25%, + $color-white-alpha-60 25%, transparent 25%, transparent 50%, - rgba(255, 255, 255, 0.75) 50%, - rgba(255, 255, 255, 0.75) 75%, + $color-white-alpha-60 50%, + $color-white-alpha-60 75%, transparent 75%, transparent ); background-image: linear-gradient( 45deg, - rgba(255, 255, 255, 0.75) 25%, + $color-white-alpha-60 25%, transparent 25%, transparent 50%, - rgba(255, 255, 255, 0.75) 50%, - rgba(255, 255, 255, 0.75) 75%, + $color-white-alpha-60 50%, + $color-white-alpha-60 75%, transparent 75%, transparent ); @@ -43,31 +43,31 @@ .progress-bar-striped { background-image: -webkit-linear-gradient( 45deg, - rgba(255, 255, 255, 0.75) 25%, + $color-white-alpha-60 25%, transparent 25%, transparent 50%, - rgba(255, 255, 255, 0.75) 50%, - rgba(255, 255, 255, 0.75) 75%, + $color-white-alpha-60 50%, + $color-white-alpha-60 75%, transparent 75%, transparent ); background-image: -o-linear-gradient( 45deg, - rgba(255, 255, 255, 0.75) 25%, + $color-white-alpha-60 25%, transparent 25%, transparent 50%, - rgba(255, 255, 255, 0.75) 50%, - rgba(255, 255, 255, 0.75) 75%, + $color-white-alpha-60 50%, + $color-white-alpha-60 75%, transparent 75%, transparent ); background-image: linear-gradient( 45deg, - rgba(255, 255, 255, 0.75) 25%, + $color-white-alpha-60 25%, transparent 25%, transparent 50%, - rgba(255, 255, 255, 0.75) 50%, - rgba(255, 255, 255, 0.75) 75%, + $color-white-alpha-60 50%, + $color-white-alpha-60 75%, transparent 75%, transparent ); @@ -79,7 +79,7 @@ } .bar-container { - background: $blue_l; + background: $color-ios-blue-tint; .progress-bar { height: 100%; diff --git a/stylesheets/_recorder.scss b/stylesheets/_recorder.scss index 6061453f403d..04d28bdd3ffe 100644 --- a/stylesheets/_recorder.scss +++ b/stylesheets/_recorder.scss @@ -20,7 +20,19 @@ display: inline-block; height: 24px; width: 24px; - @include color-svg('../images/microphone.svg', $grey); + + @include light-theme { + @include color-svg( + '../images/icons/v2/mic-outline-24.svg', + $color-gray-60 + ); + } + @include dark-theme { + @include color-svg( + '../images/icons/v2/mic-solid-24.svg', + $color-gray-25 + ); + } } } } @@ -42,31 +54,34 @@ .icon { display: inline-block; - width: $button-height; - height: $button-height; + width: 24px; + height: 24px; } } .finish { - background: lighten($color-core-green, 20%); - border: 1px solid $color-core-green; + background: lighten($color-accent-green, 20%); + border: 1px solid $color-accent-green; .icon { - @include color-svg('../images/check.svg', $color-core-green); + @include color-svg( + '../images/icons/v2/check-24.svg', + $color-accent-green + ); } } .close { - background: lighten($color-core-red, 20%); - border: 1px solid $color-core-red; + background: lighten($color-accent-red, 20%); + border: 1px solid $color-accent-red; .icon { - @include color-svg('../images/x.svg', $color-core-red); + @include color-svg('../images/icons/v2/x-24.svg', $color-accent-red); } } .time { - color: $grey; + color: $color-gray-60; float: right; line-height: 36px; padding: 0 10px; @@ -90,7 +105,7 @@ border-radius: 10px; width: 10px; height: 10px; - background: #f00; + background: $color-accent-red; margin-right: 10px; opacity: 0; animation: pulse 2s infinite; diff --git a/stylesheets/_settings.scss b/stylesheets/_settings.scss index 3cf8d6191e1c..e55dc77885b4 100644 --- a/stylesheets/_settings.scss +++ b/stylesheets/_settings.scss @@ -18,6 +18,10 @@ } hr { margin: 10px 0; + + @include dark-theme { + border-color: $color-gray-45; + } } .device-name-settings { text-align: center; @@ -32,12 +36,12 @@ } .synced_at { font-size: $font-size-small; - color: $grey; + color: $color-gray-60; } .sync_failed { display: none; font-size: $font-size-small; - color: red; + color: $color-accent-red; } } .restart-needed { @@ -52,8 +56,8 @@ margin: 0 0 20px 20px; } .destructive { - background-color: red; - color: white; + background-color: $color-accent-red; + color: $color-white; } } diff --git a/stylesheets/_theme_dark.scss b/stylesheets/_theme_dark.scss deleted file mode 100644 index f7890daef4a0..000000000000 --- a/stylesheets/_theme_dark.scss +++ /dev/null @@ -1,1761 +0,0 @@ -// Don't forget to handle the background of the popup windows! - -body.dark-theme { - background-color: $color-black; - color: $color-gray-05; -} - -.dark-theme { - // _conversation - - .conversation { - background-color: $color-gray-95; - } - - .discussion-container { - background-color: $color-gray-95; - } - - .key-verification { - .key { - color: $color-dark-05; - background: $color-dark-85; - border: solid 1px $color-dark-60; - border-radius: $border-radius; - } - - .icon { - &.verified { - @include color-svg('../images/verified-check.svg', $color-dark-05); - } - &.shield { - @include color-svg('../images/shield.svg', $color-dark-05); - } - } - } - - .bottom-bar { - form.active { - textarea { - border: solid 1px $blue; - } - } - - form.send { - background-color: $color-gray-95; - - &.video-attachment { - .outer { - .play.icon { - @include color-svg('../images/play.svg', white); - } - } - } - } - - .send-message { - background-color: $color-dark-85; - color: $color-dark-05; - border: 1px solid $color-light-60; - outline: 0; - } - } - - .toast { - background-color: $color-gray-45; - color: $color-white; - box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.12), - 0 0 0 0.5px rgba(0, 0, 0, 0.08); - } - - .confirmation-dialog { - .content { - background: $color-black; - color: $color-dark-05; - - .buttons { - button { - background-color: $color-dark-85; - border-radius: $border-radius; - border: 1px solid $color-dark-60; - color: $color-dark-05; - - &:hover { - background-color: $color-dark-70; - border-color: $color-dark-55; - } - } - } - } - } - - .conversation-loading-screen { - background-color: $color-gray-95; - } - - .module-last-seen-indicator__bar { - background-color: $color-dark-30; - } - - .module-last-seen-indicator__text { - color: $color-dark-30; - } - - .module-scroll-down__button { - background-color: $color-light-35; - box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.2); - - &:hover { - background-color: $color-light-45; - } - } - - .module-scroll-down__button--new-messages { - background-color: $color-signal-blue; - - &:hover { - background-color: #1472bd; - } - } - - .module-scroll-down__icon { - @include color-svg('../images/down.svg', $color-white); - } - - // _debugLog - - .debug-log { - &.modal { - .content { - textarea { - background-color: $color-dark-85; - border: 1px solid $color-dark-60; - color: $color-dark-05; - } - } - } - - .result { - .open { - border: solid 1px $color-dark-60; - background-color: $color-dark-85; - color: $color-dark-05; - - &:before { - @include header-icon-white('../images/open_link.svg'); - } - } - - .link { - color: $color-dark-05; - border: solid 1px $color-dark-60; - border-right: none; - background-color: $color-dark-85; - } - } - } - - // _emoji - .ep-emojies { - background-color: $color-gray-95; - } - - .ep-categories { - background-color: $color-dark-85; - } - - // _global - - ::-webkit-scrollbar-track { - background: transparent; - } - - ::-webkit-scrollbar-thumb { - background: $color-dark-55; - border: 2px solid $color-dark-85; - - &:hover { - background: $color-dark-30; - } - } - - ::-webkit-scrollbar-corner { - background: $color-black; - } - - .dark-overlay { - background-color: $color-gray-95; - } - - .title-bar { - color: $color-dark-05; - } - - button.grey { - border: solid 1px #ccc; - color: $grey; - background: $grey_l; - box-shadow: 0 0 10px -5px rgba($grey, 0.5); - - &:hover { - box-shadow: 0 0 10px -3px rgba($grey, 0.7); - } - } - - a { - color: $blue; - } - - .file-input { - .paperclip { - &:before { - @include color-svg('../images/paperclip.svg', $color-dark-30); - } - } - } - - .contact-details { - .number { - color: $color-dark-30; - } - - .verified-icon { - @include color-svg('../images/verified-check.svg', $grey); - } - } - - .recipients-input { - .recipients-container { - background-color: white; - border-bottom: 1px solid #f2f2f2; - } - - .recipient { - background-color: $blue; - color: white; - - &.error { - background-color: #f00; - } - } - - .results { - box-shadow: 0px 0px 1px rgba(#aaa, 0.8); - } - } - - .loading { - position: relative; - &::before { - border: solid 3px; - border-color: $blue_l $blue_l $grey_l $grey_l !important; - } - } - - .x { - &:before { - @include color-svg('../images/x.svg', white); - } - } - - .expiredAlert { - background: #f3f3a7; - - button { - color: white; - background: $blue; - } - } - - .full-screen-flow { - color: black; - a { - color: $blue; - } - background: linear-gradient( - to bottom, - /* (1 - 0.41) * 255 + 0.41 * 213*/ rgb(238, 238, 238) 0%, - /* (1 - 0.19) * 255 + 0.19 * 191*/ rgb(243, 243, 243) 12%, - rgb(255, 255, 255) 27%, - rgb(255, 255, 255) 60%, - /* (1 - 0.19) * 255 + 0.19 * 222*/ rgb(249, 249, 249) 85%, - /* (1 - 0.27) * 255 + 0.27 * 98 */ rgb(213, 213, 213) 100% - ); - input { - border: 2px solid $blue; - } - - #qr { - &.ready { - border: 5px solid $blue; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); - } - - img { - border: 5px solid white; - } - - .dot { - border: 3px solid $blue; - } - } - - .os-icon { - &.apple { - @include color-svg('../images/apple.svg', black); - } - &.android { - @include color-svg('../images/android.svg', black); - } - } - - .banner-icon { - // generic - &.check-circle-outline { - @include color-svg('../images/check-circle-outline.svg', #dedede); - } - &.alert-outline { - @include color-svg('../images/alert-outline.svg', #dedede); - } - - // import and export - &.folder-outline { - @include color-svg('../images/folder-outline.svg', #dedede); - } - &.import { - @include color-svg('../images/import.svg', #dedede); - } - &.export { - @include color-svg('../images/export.svg', #dedede); - } - - // registration process - &.lead-pencil { - @include color-svg('../images/lead-pencil.svg', #dedede); - } - &.sync { - @include color-svg('../images/sync.svg', #dedede); - } - - // delete - &.alert-outline-red { - @include color-svg('../images/alert-outline.svg', red); - } - &.delete { - @include color-svg('../images/delete.svg', #dedede); - } - } - - .button { - color: white; - background: $blue; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); - - &.neutral { - color: black; - background: #dedede; - } - &.destructive { - background: red; - } - } - a.link { - color: #2090ea; - } - - .progress { - .bar-container { - background-color: $grey_l; - } - .bar { - background-color: $blue_l; - } - } - } - - // _index - - .gutter { - background-color: $color-dark-85; - - ::-webkit-scrollbar-track { - background: $color-dark-85; - } - } - .network-status-container { - .network-status { - background: url('../images/error_red.svg') no-repeat left 10px center; - background-size: 25px 25px; - background-color: #fcd156; - - .network-status-message { - color: $color-dark-85; - } - - .action { - button { - border: solid 1px #ccc; - color: white; - background: $blue; - } - } - } - } - - .tool-bar { - color: $color-dark-05; - - .search-icon { - background-color: $color-light-35; - } - } - - input.search { - border: 1px solid $color-light-60; - color: $color-dark-05; - background-color: $color-gray-95; - - &:focus { - outline: solid 1px $blue; - } - } - - .last-timestamp { - color: $grey; - } - - .index { - .gutter .timestamp { - color: $grey; - } - } - - .hint { - color: white; - border: 2px dashed white; - - &.firstRun { - &:before, - &:after { - border: solid 10px white; - border-color: transparent white transparent transparent; - } - &:after { - border-color: transparent #2eace0 transparent transparent; - } - } - } - - .contact.placeholder { - color: white; - border: 2px dashed white; - p { - color: white; - } - &:before, - &:after { - border: solid 10px white; - border-color: transparent transparent white transparent; - } - &:after { - border-color: transparent transparent #2eace0 transparent; - } - } - - // _lightbox - - .iconButton { - background: transparent; - - &:hover { - background: $grey; - } - - &.save { - &:before { - @include color-svg('../images/save.svg', white); - } - } - - &.close { - &:before { - @include color-svg('../images/x.svg', white); - } - } - - &.previous { - &:before { - @include color-svg('../images/back.svg', white); - } - } - - &.next { - &:before { - @include color-svg('../images/forward.svg', white); - } - } - } - - // _modal - - .modal { - background-color: rgba(0, 0, 0, 0.3); - - .content { - background-color: $color-gray-95; - box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.2); - } - } - - // _modules - - // Module: Message - - .module-message__buttons__download { - @include color-svg('../images/download.svg', $color-light-45); - &:hover { - @include color-svg('../images/download.svg', $color-dark-05); - } - } - - .module-message__buttons__reply { - @include color-svg('../images/reply.svg', $color-light-45); - &:hover { - @include color-svg('../images/reply.svg', $color-dark-05); - } - } - - .module-message__buttons__menu { - @include color-svg('../images/ellipsis.svg', $color-light-45); - &:hover { - @include color-svg('../images/ellipsis.svg', $color-dark-05); - } - } - - .module-message__error { - @include color-svg('../images/error.svg', $color-core-red); - } - - .module-message__container--outgoing { - background-color: $color-dark-70; - } - - // In case the color gets messed up - .module-message__container--incoming { - background-color: $color-conversation-grey; - } - - .module-message__container--incoming-red { - background-color: $color-conversation-red; - } - .module-message__container--incoming-deep_orange { - background-color: $color-conversation-deep_orange; - } - .module-message__container--incoming-brown { - background-color: $color-conversation-brown; - } - .module-message__container--incoming-pink { - background-color: $color-conversation-pink; - } - .module-message__container--incoming-purple { - background-color: $color-conversation-purple; - } - .module-message__container--incoming-indigo { - background-color: $color-conversation-indigo; - } - .module-message__container--incoming-blue { - background-color: $color-conversation-blue; - } - .module-message__container--incoming-teal { - background-color: $color-conversation-teal; - } - .module-message__container--incoming-green { - background-color: $color-conversation-green; - } - .module-message__container--incoming-light_green { - background-color: $color-conversation-light_green; - } - .module-message__container--incoming-blue_grey { - background-color: $color-conversation-blue_grey; - } - - .module-message__container--incoming--tap-to-view-pending { - background-color: $color-conversation-grey-shade; - } - .module-message__container--incoming-red-tap-to-view-pending { - background-color: $color-conversation-red-shade; - } - .module-message__container--incoming-deep_orange-tap-to-view-pending { - background-color: $color-conversation-deep_orange-shade; - } - .module-message__container--incoming-brown-tap-to-view-pending { - background-color: $color-conversation-brown-shade; - } - .module-message__container--incoming-pink-tap-to-view-pending { - background-color: $color-conversation-pink-shade; - } - .module-message__container--incoming-purple-tap-to-view-pending { - background-color: $color-conversation-purple-shade; - } - .module-message__container--incoming-indigo-tap-to-view-pending { - background-color: $color-conversation-indigo-shade; - } - .module-message__container--incoming-blue-tap-to-view-pending { - background-color: $color-conversation-blue-shade; - } - .module-message__container--incoming-teal-tap-to-view-pending { - background-color: $color-conversation-teal-shade; - } - .module-message__container--incoming-green-tap-to-view-pending { - background-color: $color-conversation-green-shade; - } - .module-message__container--incoming-light_green-tap-to-view-pending { - background-color: $color-conversation-light_green-shade; - } - .module-message__container--incoming-blue_grey-tap-to-view-pending { - background-color: $color-conversation-blue_grey-shade; - } - - .module-message__container--with-tap-to-view-expired { - border: 1px solid $color-gray-60; - background-color: $color-black; - } - - .module-message__container--with-tap-to-view-error { - background-color: $color-gray-95; - border: 1px solid $color-deep-red; - } - - .module-message__tap-to-view__icon { - background-color: $color-gray-05; - } - .module-message__tap-to-view__icon--outgoing { - background-color: $color-gray-05; - } - .module-message__tap-to-view__icon--expired { - background-color: $color-gray-05; - } - .module-message__tap-to-view__text { - color: $color-gray-05; - } - .module-message__tap-to-view__text--incoming { - color: $color-gray-05; - } - .module-message__tap-to-view__text--incoming-expired { - color: $color-gray-05; - } - .module-message__tap-to-view__text--incoming-error { - color: $color-gray-25; - } - - .module-message__attachment-container { - background-color: $color-gray-95; - } - - .module-message__img-border-overlay { - box-shadow: inset 0px 0px 0px 1px $color-white-015; - } - - .module-message__img-overlay { - background-image: linear-gradient( - to bottom, - rgba(0, 0, 0, 0), - rgba(0, 0, 0, 0) 9%, - rgba(0, 0, 0, 0.02) 17%, - rgba(0, 0, 0, 0.05) 24%, - rgba(0, 0, 0, 0.08) 31%, - rgba(0, 0, 0, 0.12) 37%, - rgba(0, 0, 0, 0.16) 44%, - rgba(0, 0, 0, 0.2) 50%, - rgba(0, 0, 0, 0.24) 56%, - rgba(0, 0, 0, 0.28) 63%, - rgba(0, 0, 0, 0.32) 69%, - rgba(0, 0, 0, 0.35) 76%, - rgba(0, 0, 0, 0.38) 83%, - rgba(0, 0, 0, 0.4) 91%, - rgba(0, 0, 0, 0.4) - ); - } - - .module-message__broken-image { - color: $color-dark-05; - } - - .module-message__broken-image--incoming { - color: $color-white; - } - - .module-message__video-overlay__circle { - background-color: $color-white; - } - - .module-message__video-overlay__play-icon { - @include color-svg('../images/play.svg', $color-signal-blue); - } - - .module-message__broken-video-screenshot { - color: $color-dark-05; - } - - .module-message__broken-video-screenshot--incoming { - color: $color-white; - } - - .module-message__generic-attachment__icon { - // background: url('../images/file-gradient.svg') no-repeat center; - } - - .module-message__generic-attachment__file-name { - color: $color-dark-05; - } - - .module-message__generic-attachment__file-name--incoming { - color: $color-white; - } - - .module-message__generic-attachment__file-size { - color: $color-dark-05; - } - - .module-message__generic-attachment__file-size--incoming { - color: $color-white; - } - - .module-message__link-preview__content { - background-color: $color-gray-95; - border: 1px solid $color-gray-60; - } - - .module-message__link-preview__content--with-content-above { - border-top: none; - border-bottom: none; - } - - .module-message__link-preview__title { - color: $color-gray-05; - } - - .module-message__link-preview__location { - color: $color-gray-25; - } - - .module-message__author { - color: $color-white; - } - - .module-message__author--with-tap-to-view-expired { - color: $color-white; - } - - .module-message__author_with_sticker { - color: $color-gray-05; - } - - .module-message__text { - color: $color-dark-05; - a { - color: $color-dark-05; - } - } - - .module-message__text--incoming { - color: $color-white; - a { - color: $color-white; - } - } - - .module-message__metadata__date { - color: $color-white-08; - } - .module-message__metadata__date--incoming { - color: $color-white-08; - } - .module-message__metadata__date--with-image-no-caption { - color: $color-white-08; - } - - .module-message__metadata__status-icon--sending { - @include color-svg('../images/sending.svg', $color-white-08); - } - - .module-message__metadata__status-icon--sent { - @include color-svg('../images/check-circle-outline.svg', $color-white-08); - } - - .module-message__metadata__status-icon--delivered { - @include color-svg('../images/double-check.svg', $color-white-08); - } - - .module-message__metadata__status-icon--read { - @include color-svg('../images/read.svg', $color-white-08); - } - - // When status indicators are overlaid on top of an image, they use different colors - .module-message__metadata__status-icon--with-image-no-caption { - background-color: $color-dark-05; - } - - .module-message__send-message-button { - color: $color-signal-blue; - background-color: $color-dark-70; - border: 1px solid $color-dark-60; - } - - // Module: Expire Timer - - .module-expire-timer { - @include color-svg('../images/timer-60.svg', $color-white-08); - } - - .module-expire-timer--55 { - @include color-svg('../images/timer-55.svg', $color-white-08); - } - .module-expire-timer--50 { - @include color-svg('../images/timer-50.svg', $color-white-08); - } - .module-expire-timer--45 { - @include color-svg('../images/timer-45.svg', $color-white-08); - } - .module-expire-timer--40 { - @include color-svg('../images/timer-40.svg', $color-white-08); - } - .module-expire-timer--35 { - @include color-svg('../images/timer-35.svg', $color-white-08); - } - .module-expire-timer--30 { - @include color-svg('../images/timer-30.svg', $color-white-08); - } - .module-expire-timer--25 { - @include color-svg('../images/timer-25.svg', $color-white-08); - } - .module-expire-timer--20 { - @include color-svg('../images/timer-20.svg', $color-white-08); - } - .module-expire-timer--15 { - @include color-svg('../images/timer-15.svg', $color-white-08); - } - .module-expire-timer--10 { - @include color-svg('../images/timer-10.svg', $color-white-08); - } - .module-expire-timer--05 { - @include color-svg('../images/timer-05.svg', $color-white-08); - } - .module-expire-timer--00 { - @include color-svg('../images/timer-00.svg', $color-white-08); - } - - .module-expire-timer--incoming { - background-color: $color-white-08; - } - - // When status indicators are overlaid on top of an image, they use different colors - .module-expire-timer--with-image-no-caption { - background-color: $color-dark-05; - } - - // Module: Quoted Reply - - .module-quote--outgoing { - border-left-color: $color-conversation-grey; - background-color: $color-conversation-grey-shade; - } - .module-quote--outgoing-red { - border-left-color: $color-conversation-red; - background-color: $color-conversation-red-shade; - } - .module-quote--outgoing-deep_orange { - border-left-color: $color-conversation-deep_orange; - background-color: $color-conversation-deep_orange-shade; - } - .module-quote--outgoing-brown { - border-left-color: $color-conversation-brown; - background-color: $color-conversation-brown-shade; - } - .module-quote--outgoing-pink { - border-left-color: $color-conversation-pink; - background-color: $color-conversation-pink-shade; - } - .module-quote--outgoing-purple { - border-left-color: $color-conversation-purple; - background-color: $color-conversation-purple-shade; - } - .module-quote--outgoing-indigo { - border-left-color: $color-conversation-indigo; - background-color: $color-conversation-indigo-shade; - } - .module-quote--outgoing-blue { - border-left-color: $color-conversation-blue; - background-color: $color-conversation-blue-shade; - } - .module-quote--outgoing-teal { - border-left-color: $color-conversation-teal; - background-color: $color-conversation-teal-shade; - } - .module-quote--outgoing-green { - border-left-color: $color-conversation-green; - background-color: $color-conversation-green-shade; - } - .module-quote--outgoing-light_green { - border-left-color: $color-conversation-light_green; - background-color: $color-conversation-light_green-shade; - } - .module-quote--outgoing-blue_grey { - border-left-color: $color-conversation-blue_grey; - background-color: $color-conversation-blue_grey-shade; - } - - .module-quote--incoming { - border-left-color: $color-black; - background-color: $color-conversation-grey-shade; - } - .module-quote--incoming-red { - background-color: $color-conversation-red-shade; - } - .module-quote--incoming-deep_orange { - background-color: $color-conversation-deep_orange-shade; - } - .module-quote--incoming-brown { - background-color: $color-conversation-brown-shade; - } - .module-quote--incoming-pink { - background-color: $color-conversation-pink-shade; - } - .module-quote--incoming-purple { - background-color: $color-conversation-purple-shade; - } - .module-quote--incoming-indigo { - background-color: $color-conversation-indigo-shade; - } - .module-quote--incoming-blue { - background-color: $color-conversation-blue-shade; - } - .module-quote--incoming-teal { - background-color: $color-conversation-teal-shade; - } - .module-quote--incoming-green { - background-color: $color-conversation-green-shade; - } - .module-quote--incoming-light_green { - background-color: $color-conversation-light_green-shade; - } - .module-quote--incoming-blue_grey { - background-color: $color-conversation-blue_grey-shade; - } - - .module-quote__primary__author { - color: $color-dark-05; - } - - .module-quote__primary__author-red { - color: $color-dark-05; - } - .module-quote__primary__author-deep_orange { - color: $color-dark-05; - } - .module-quote__primary__author-brown { - color: $color-dark-05; - } - .module-quote__primary__author-pink { - color: $color-dark-05; - } - .module-quote__primary__author-purple { - color: $color-dark-05; - } - .module-quote__primary__author-indigo { - color: $color-dark-05; - } - .module-quote__primary__author-blue { - color: $color-dark-05; - } - .module-quote__primary__author-teal { - color: $color-dark-05; - } - .module-quote__primary__author-green { - color: $color-dark-05; - } - .module-quote__primary__author-light_green { - color: $color-dark-05; - } - .module-quote__primary__author-blue_grey { - color: $color-dark-05; - } - - .module-quote__primary__text { - color: $color-dark-05; - - a { - color: $color-dark-05; - } - } - - .module-quote__primary__type-label { - color: $color-dark-05; - } - - .module-quote__close-container { - background-color: rgba(255, 255, 255, 0.75); - } - - .module-quote__close-button { - @include color-svg('../images/x.svg', $grey); - } - - .module-quote__icon-container__circle-background { - background-color: $color-white; - } - - .module-quote__icon-container__icon--file { - @include color-svg('../images/file.svg', $color-signal-blue); - } - .module-quote__icon-container__icon--image { - @include color-svg('../images/image.svg', $color-signal-blue); - } - .module-quote__icon-container__icon--microphone { - @include color-svg('../images/microphone.svg', $color-signal-blue); - } - .module-quote__icon-container__icon--play { - @include color-svg('../images/play.svg', $color-signal-blue); - } - .module-quote__icon-container__icon--movie { - @include color-svg('../images/movie.svg', $color-signal-blue); - } - - .module-quote__generic-file__text { - color: $color-dark-05; - } - - .module-quote__reference-warning { - background-color: $color-black-06; - } - - .module-quote__reference-warning__icon { - @include color-svg('../images/broken-link.svg', $color-dark-30); - } - - .module-quote__reference-warning__text { - color: $color-dark-05; - } - - // Module: Embedded Contact - - .module-embedded-contact__contact-name { - color: $color-dark-05; - } - - .module-embedded-contact__contact-name--incoming { - color: $color-white; - } - - .module-embedded-contact__contact-method { - color: $color-white-07; - } - - .module-embedded-contact__contact-method--incoming { - color: $color-white-07; - } - - // Module: Contact Detail - - .module-contact-detail__send-message { - background-color: $blue; - color: $color-white; - } - - .module-contact-detail__send-message__bubble-icon { - @include color-svg('../images/chat-bubble.svg', white); - } - - .module-contact-detail__additional-contact { - border-top: 1px solid $color-dark-70; - } - - .module-contact-detail__additional-contact__type { - color: $color-light-45; - } - - // Module: Group Notification - - .module-group-notification { - color: $color-dark-30; - } - - // Module: Reset Session Notification - - .module-reset-session-notification { - color: $color-dark-30; - } - - // Module: Safety Number Notification - - .module-safety-number-notification__icon { - @include color-svg('../images/shield.svg', $color-dark-30); - } - - .module-safety-number-notification__text { - color: $color-dark-30; - } - - .module-safety-number-notification__button { - color: $color-signal-blue; - background-color: $color-gray-75; - } - - // Module: Verification Notification - - .module-verification-notification { - color: $color-dark-30; - } - - .module-verification-notification__icon--mark-verified { - @include color-svg('../images/verified-check.svg', $color-dark-30); - } - - .module-verification-notification__icon--mark-not-verified { - @include color-svg('../images/shield.svg', $color-dark-30); - } - - // Module: Timer Notification - - .module-timer-notification { - color: $color-dark-30; - } - - .module-timer-notification__icon { - @include color-svg('../images/timer.svg', $color-dark-30); - } - - .module-timer-notification__icon--disabled { - @include color-svg('../images/timer-disabled.svg', $color-dark-30); - } - - // Module: Contact List Item - - .module-contact-list-item { - color: $color-dark-30; - } - - .module-contact-list-item__text__verified-icon { - @include color-svg('../images/verified-check.svg', $color-dark-30); - } - - // Module: Conversation Header - - .module-conversation-header { - color: $color-dark-05; - background-color: $color-gray-95; - border-bottom: 1px solid $color-light-60; - } - - .module-conversation-header__back-icon { - background-color: $color-dark-05; - } - - .module-conversation-header__title { - color: $color-dark-05; - } - - .module-conversation-header__note-to-self { - color: $color-dark-05; - } - - .module-conversation-header__title__verified-icon { - background-color: $color-dark-05; - } - - .module-conversation-header__expiration__clock-icon { - background-color: $color-gray-25; - } - - .module-conversation-header__more-button { - background-color: $color-gray-15; - } - - .module-conversation-header__search-button { - background-color: $color-gray-15; - } - - // Module: Message Detail - - .module-message-detail__unix-timestamp { - color: $color-dark-55; - } - - .module-message-detail__delete-button { - background-color: $color-core-red; - color: $color-white; - box-shadow: 0 0 10px -3px rgba(97, 97, 97, 0.7); - border: solid 1px $color-light-35; - } - - .module-message-detail__contact__error { - color: $color-core-red; - } - - .module-message-detail__contact__status-icon--sending { - @include color-svg('../images/sending.svg', $color-light-35); - } - - .module-message-detail__contact__status-icon--sent { - @include color-svg('../images/check-circle-outline.svg', $color-light-35); - } - .module-message-detail__contact__status-icon--delivered { - @include color-svg('../images/double-check.svg', $color-light-35); - } - .module-message-detail__contact__status-icon--read { - @include color-svg('../images/read.svg', $color-light-35); - } - .module-message-detail__contact__status-icon--error { - @include color-svg('../images/error.svg', $color-core-red); - } - - .module-message-detail__contact__show-safety-number { - color: $color-white; - background-color: $color-light-35; - } - .module-message-detail__contact__send-anyway { - color: $color-white; - background-color: $color-core-red; - } - - // Module: Media Gallery - - .module-media-gallery__tab { - background-color: $color-dark-85; - } - - .module-media-gallery__tab--active { - border-bottom: 2px solid $color-signal-blue; - } - - // Module: Document List Item - - .module-document-list-item--with-separator { - border-bottom: 1px solid $color-dark-70; - } - - .module-document-list-item__icon { - @include color-svg('../images/file.svg', $color-dark-60); - } - - // Module: Media Grid Item - - .module-media-grid-item { - background-color: $color-dark-85; - } - - .module-media-grid-item__icon-image { - @include color-svg('../images/image.svg', $color-dark-60); - } - - .module-media-grid-item__icon-video { - @include color-svg('../images/movie.svg', $color-dark-60); - } - - .module-media-grid-item__icon-generic { - @include color-svg('../images/file.svg', $color-dark-60); - } - - // Module: Empty State - - .module-empty-state { - color: $color-dark-55; - } - - // Module: Conversation List Item - - .module-conversation-list-item { - &:hover { - background-color: $color-dark-70; - } - } - - .module-conversation-list-item--has-unread { - border-left: 4px solid $color-signal-blue; - } - - .module-conversation-list-item--is-selected { - background-color: $color-dark-70; - } - - .module-conversation-list-item__unread-count { - color: $color-white; - background-color: $color-signal-blue; - box-shadow: 0px 0px 0px 1px $color-dark-85; - } - - .module-conversation-list-item__header__name { - color: $color-gray-05; - } - - .module-conversation-list-item__header__timestamp { - color: $color-gray-25; - } - - .module-conversation-list-item__header__date--has-unread { - color: $color-gray-05; - } - - .module-conversation-list-item__message__text { - color: $color-gray-25; - } - - .module-conversation-list-item__message__text--has-unread { - color: $color-gray-05; - } - - .module-conversation-list-item__message__status-icon--sending { - @include color-svg('../images/sending.svg', $color-light-35); - } - - .module-conversation-list-item__message__status-icon--sent { - @include color-svg('../images/check-circle-outline.svg', $color-light-35); - } - .module-conversation-list-item__message__status-icon--delivered { - @include color-svg('../images/double-check.svg', $color-light-35); - width: 18px; - } - .module-conversation-list-item__message__status-icon--read { - @include color-svg('../images/read.svg', $color-light-35); - width: 18px; - } - - // Module: Avatar - - .module-avatar__label { - color: $color-gray-05; - } - - .module-avatar__icon--group { - background-color: $color-gray-05; - } - - .module-avatar__icon--direct { - background-color: $color-gray-05; - } - - .module-avatar__icon--note-to-self { - background-color: $color-gray-05; - } - - .module-avatar--no-image { - background-color: $color-conversation-grey-shade; - } - - .module-avatar--signal-blue { - background-color: $color-signal-blue; - } - .module-avatar--red { - background-color: $color-conversation-red-shade; - } - .module-avatar--deep_orange { - background-color: $color-conversation-deep_orange-shade; - } - .module-avatar--brown { - background-color: $color-conversation-brown-shade; - } - .module-avatar--pink { - background-color: $color-conversation-pink-shade; - } - .module-avatar--purple { - background-color: $color-conversation-purple-shade; - } - .module-avatar--indigo { - background-color: $color-conversation-indigo-shade; - } - .module-avatar--blue { - background-color: $color-conversation-blue-shade; - } - .module-avatar--teal { - background-color: $color-conversation-teal-shade; - } - .module-avatar--green { - background-color: $color-conversation-green-shade; - } - .module-avatar--light_green { - background-color: $color-conversation-light_green-shade; - } - .module-avatar--blue_grey { - background-color: $color-conversation-blue_grey-shade; - } - - // Module: Main Header - - .module-main-header { - border-bottom: 1px solid $color-gray-75; - } - - .module-main-header__search__input { - background-color: $color-gray-95; - border-radius: 14px; - border: solid 1px $color-gray-75; - color: $color-gray-05; - - &::placeholder { - color: $color-gray-45; - } - - &:focus { - border: solid 1px $color-signal-blue; - outline: none; - } - } - - .module-main-header__search__icon { - background-color: $color-gray-25; - } - - .module-main-header__search__cancel-icon { - background-color: $color-gray-25; - } - - .module-main-header__search__in-conversation-pill { - background-color: $color-gray-75; - } - .module-main-header__search__in-conversation-pill__avatar-container { - background-color: $color-signal-blue; - } - .module-main-header__search__in-conversation-pill__avatar { - background-color: $color-gray-05; - } - .module-main-header__search__in-conversation-pill__x-button { - background-color: $color-gray-25; - } - - // Module: Image - - .module-image--with-background { - background-color: $color-black; - } - - .module-image__border-overlay { - box-shadow: inset 0px 0px 0px 1px $color-white-015; - } - - .module-image__loading-placeholder { - background-color: $color-white-015; - } - - // Module: Image Grid - - // Module: Typing Animation - - .module-typing-animation__dot { - background-color: $color-white; - } - - .module-typing-animation__dot--light { - background-color: $color-white; - } - - // Module: Attachments - - .module-attachments__close-button { - @include color-svg('../images/x-16.svg', $color-gray-45); - } - - // Module: Staged Generic Attachment - - .module-staged-generic-attachment { - box-shadow: inset 0px 0px 0px 1px $color-gray-45; - background-color: $color-gray-75; - color: $color-dark-05; - } - - .module-staged-generic-attachment__close-button { - @include color-svg('../images/x.svg', $color-gray-45); - } - - .module-staged-generic-attachment__icon { - background: url('../images/file-gradient.svg') no-repeat center; - } - - .module-staged-generic-attachment__icon__extension { - color: $color-gray-90; - } - - // Module: Staged Placeholder Attachment - - .module-staged-placeholder-attachment { - border: 1px solid $color-gray-60; - - &:hover { - background: $color-gray-75; - } - } - - .module-staged-placeholder-attachment__plus-icon { - @include color-svg('../images/plus-36.svg', $color-gray-60); - } - - // Module: Staged Link Preview - - .module-staged-link-preview__loading { - color: $color-gray-25; - } - .module-staged-link-preview__title { - color: $color-gray-05; - } - .module-staged-link-preview__location { - color: $color-gray-25; - } - .module-staged-link-preview__close-button { - @include color-svg('../images/x-16.svg', $color-gray-25); - } - - // Module: Spinner - - .module-spinner__circle { - background-color: $color-white-04; - } - .module-spinner__arc { - background-color: $color-gray-05; - } - - .module-spinner__circle--incoming { - background-color: $color-white-04; - } - .module-spinner__arc--incoming { - background-color: $color-gray-05; - } - - .module-spinner__circle--outgoing { - background-color: $color-white-04; - } - .module-spinner__arc--outgoing { - background-color: $color-gray-05; - } - - .module-spinner__circle--on-background { - background-color: $color-gray-75; - } - .module-spinner__arc--on-background { - background-color: $color-gray-25; - } - - // Module: Caption Editor - - .module-caption-editor { - background-color: $color-black; - } - - .module-caption-editor__close-button { - @include color-svg('../images/x-16.svg', $color-white); - } - - .module-caption-editor__media-container { - background-color: $color-black; - } - - .module-caption-editor__caption-input { - border: 1px solid $color-white; - color: $color-white; - background-color: $color-black; - - &::placeholder { - color: $color-white-07; - } - &:focus { - border: 1px solid $color-signal-blue; - outline: none; - } - } - - .module-caption-editor__save-button { - background-color: $color-signal-blue; - color: $color-white; - } - - // Module: Highlighted Message Body - - // Module: Search Results - - .module-search-results__conversations-header { - color: $color-gray-05; - } - .module-search-results__contacts-header { - color: $color-gray-05; - } - .module-search-results__messages-header { - color: $color-gray-05; - } - - // Module: Message Search Result - - .module-message-search-result { - &:hover { - background-color: $color-dark-70; - } - } - - .module-message-search-result--is-selected { - background-color: $color-dark-70; - } - - .module-message-search-result__header__from { - color: $color-gray-05; - } - - .module-message-search-result__header__timestamp { - color: $color-gray-25; - } - - .module-message-search-result__body { - color: $color-gray-15; - } - - // Module: Left Pane - - .module-left-pane { - background-color: $color-dark-85; - border-right: 1px solid $color-gray-75; - } - - .module-left-pane__archive-header { - border-bottom: 1px solid $color-gray-75; - } - - .module-left-pane__to-inbox-button { - background-color: $color-gray-25; - } - - .module-left-pane__archive-header-text { - color: $color-gray-05; - } - - .module-left-pane__archive-helper-text { - color: $color-gray-25; - background-color: $color-gray-75; - } - - .module-left-pane__archived-button { - color: $color-gray-25; - &:hover { - background-color: $color-gray-75; - } - } - - .module-left-pane__archived-button__archived-count { - color: $color-gray-25; - background-color: $color-gray-75; - } - - // Module: Start New Conversation - - .module-start-new-conversation { - &:hover { - background-color: $color-dark-70; - } - } - - .module-start-new-conversation__number { - color: $color-gray-05; - } - - .module-start-new-conversation__text { - color: $color-gray-45; - } - - // Third-party module: react-contextmenu - - .react-contextmenu { - background-color: $color-dark-85; - border: 1px solid $color-light-60; - } - - .react-contextmenu-item { - color: $color-dark-05; - } - - .react-contextmenu-item--checked:before { - color: $color-dark-05; - } - - .react-contextmenu-item.react-contextmenu-submenu - > .react-contextmenu-item:after { - color: $color-dark-05; - } - - .react-contextmenu-item.react-contextmenu-item--active, - .react-contextmenu-item.react-contextmenu-item--selected { - color: $color-white; - background-color: $color-light-35; - } - - .react-contextmenu-item.react-contextmenu-item--active.react-contextmenu-item--checked:before, - .react-contextmenu-item.react-contextmenu-item--selected.react-contextmenu-item--checked:before { - color: $color-white; - } - - .react-contextmenu-item.react-contextmenu-submenu - > .react-contextmenu-item.react-contextmenu-item--active:after, - .react-contextmenu-item.react-contextmenu-submenu - > .react-contextmenu-item.react-contextmenu-item--selected:after { - color: $color-white; - } - - // _options - - .intl-tel-input .country-list .country .country-name { - color: #000; - } - - // _progress - - // Not sure we need to change anything there - it's blue - - // _recorder - - .capture-audio { - .microphone { - &:before { - @include color-svg('../images/microphone.svg', $color-dark-30); - } - } - } - .recorder { - .finish { - background: lighten($color-core-green, 20%); - border: 1px solid $color-core-green; - - .icon { - @include color-svg('../images/check.svg', $color-core-green); - } - } - - .close { - background: lighten($color-core-red, 20%); - border: 1px solid $color-core-red; - - .icon { - @include color-svg('../images/x.svg', $color-core-red); - } - } - - .time { - color: $grey; - } - } - - // _settings - - hr { - border-color: $color-dark-60; - } - - .syncSettings { - .synced_at { - color: $grey; - } - .sync_failed { - color: red; - } - } - - .clear-data-settings { - .destructive { - background-color: red; - color: white; - } - } -} diff --git a/stylesheets/_variables.scss b/stylesheets/_variables.scss index 7e3a2edab206..e254b16a151a 100644 --- a/stylesheets/_variables.scss +++ b/stylesheets/_variables.scss @@ -1,59 +1,74 @@ @font-face { - font-family: 'Roboto-Light'; - src: url('../fonts/Roboto-Light.ttf') format('truetype'); -} -@font-face { - font-family: 'Roboto'; - src: url('../fonts/Roboto-Regular.ttf') format('truetype'); -} -@font-face { - font-family: 'Roboto'; - src: url('../fonts/Roboto-Medium.ttf') format('truetype'); - font-weight: 300; -} -@font-face { - font-family: 'Roboto'; - src: url('../fonts/Roboto-Italic.ttf') format('truetype'); + font-family: 'Inter'; + src: url('../fonts/inter-v3.10/Inter-BoldItalic.woff2'); + font-weight: bolder; font-style: italic; } @font-face { - font-family: 'Roboto'; - src: url('../fonts/Roboto-Bold.ttf') format('truetype'); + font-family: 'Inter'; + src: url('../fonts/inter-v3.10/Inter-Bold.woff2'); + font-weight: bolder; +} + +@font-face { + font-family: 'Inter'; + src: url('../fonts/inter-v3.10/Inter-SemiBoldItalic.woff2'); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: 'Inter'; + src: url('../fonts/inter-v3.10/Inter-Italic.woff2'); + font-style: italic; +} +@font-face { + font-family: 'Inter'; + src: url('../fonts/inter-v3.10/Inter-SemiBold.woff2'); font-weight: bold; } -$roboto: Roboto, 'Helvetica Neue', 'Source Sans Pro', 'Source Han Sans SC', +@font-face { + font-family: 'Inter'; + src: url('../fonts/inter-v3.10/Inter-Regular.woff2'); +} + +$inter: Inter, 'Helvetica Neue', 'Source Sans Pro', 'Source Han Sans SC', 'Source Han Sans CN', 'Hiragino Sans GB', 'Hiragino Kaku Gothic', 'Microsoft Yahei UI', Helvetica, Arial, sans-serif; -$roboto-light: Roboto-Light, 'Helvetica Neue', 'Source Sans Pro Light', - 'Source Han Sans SC Light', 'Source Han Sans CN Light', - 'Hiragino Sans GB Light', 'Hiragino Kaku Gothic Light', - 'Microsoft Yahei UI Light', Helvetica, Arial, sans-serif; -// New colors +// -- V3 Colors $color-signal-blue: #2090ea; -$color-core-green: #4caf50; -$color-core-red: #f44336; -$color-deep-red: #ff261f; -$color-signal-blue-025: rgba($color-signal-blue, 0.25); -$color-signal-blue-050: rgba($color-signal-blue, 0.5); +$color-accent-blue: #2090ea; +$color-accent-green: #4caf50; +$color-accent-red: #f44336; +$color-accent-yellow: #ffd624; $color-white: #ffffff; -$color-gray-02: #f8f9f9; -$color-gray-05: #eeefef; -$color-gray-10: #e1e2e3; -$color-gray-15: #d5d6d6; -$color-gray-25: #bbbdbe; -$color-gray-45: #898a8c; -$color-gray-60: #6b6d70; -$color-gray-75: #3d3e44; -$color-gray-85: #23252a; -$color-gray-90: #17191d; -$color-gray-95: #0f1012; +$color-gray-02: #f6f6f6; +$color-gray-05: #e9e9e9; +$color-gray-15: #dedede; +$color-gray-25: #b9b9b9; +$color-gray-45: #848484; +$color-gray-60: #5e5e5e; +$color-gray-65: #4a4a4a; +$color-gray-75: #3b3b3b; +$color-gray-80: #2e2e2e; +$color-gray-90: #1b1b1b; +$color-gray-95: #121212; $color-black: #000000; +$color-white-alpha-20: rgba($color-white, 0.2); +$color-white-alpha-60: rgba($color-white, 0.6); +$color-white-alpha-80: rgba($color-white, 0.8); +$color-white-alpha-90: rgba($color-white, 0.9); + +$color-black-alpha-05: rgba($color-black, 0.05); +$color-black-alpha-20: rgba($color-black, 0.2); +$color-black-alpha-40: rgba($color-black, 0.4); +$color-black-alpha-60: rgba($color-black, 0.6); + $color-crimson: #cc163d; $color-vermilion: #c73800; $color-burlap: #746c53; @@ -67,6 +82,14 @@ $color-plum: #a23474; $color-taupe: #895d66; $color-steel: #6b6b78; +// Tints and shades + +// Used for iOS theme and the safety number change warning banner +$color-ios-blue-tint: #a2d2f4; + +// Used for scroll down button hover state when it has new messages +$color-ios-blue-shade: #1472bd; + $color-crimson-tint: #eda6ae; $color-vermilion-tint: #eba78e; $color-burlap-tint: #c4b997; @@ -93,39 +116,7 @@ $color-plum-shade: #881b5b; $color-taupe-shade: #6a4e54; $color-steel-shade: #5a5a63; -$color-white-015: rgba($color-white, 0.15); -$color-white-02: rgba($color-white, 0.2); -$color-white-04: rgba($color-white, 0.4); -$color-white-05: rgba($color-white, 0.5); -$color-white-06: rgba($color-white, 0.6); -$color-white-07: rgba($color-white, 0.7); -$color-white-075: rgba($color-white, 0.75); -$color-white-08: rgba($color-white, 0.8); -$color-white-085: rgba($color-white, 0.85); -$color-light-02: #f9fafa; -$color-light-10: #eeefef; -$color-light-35: #a4a6a9; -$color-light-45: #8b8e91; -$color-light-60: #62656a; -$color-light-90: #070c14; - -$color-dark-05: #efefef; -$color-dark-30: #a8a9aa; -$color-dark-55: #88898c; -$color-dark-60: #797a7c; -$color-dark-70: #414347; -$color-dark-85: #1a1c20; -$color-black-008: rgba($color-black, 0.08); -$color-black-005: rgba($color-black, 0.05); -$color-black-008-no-tranparency: #ededed; -$color-black-016-no-tranparency: #d9d9d9; -$color-black-012: rgba($color-black, 0.12); -$color-black-015: rgba($color-black, 0.15); -$color-black-02: rgba($color-black, 0.2); -$color-black-04: rgba($color-black, 0.4); -$color-black-06: rgba($color-black, 0.6); - -$color-signal-blue-mix: mix($color-signal-blue-025, $color-white-04); +// Semantic conversation colors $color-conversation-red: $color-crimson; $color-conversation-deep_orange: $color-vermilion; @@ -166,25 +157,63 @@ $color-conversation-light_green-shade: $color-wintergreen-shade; $color-conversation-blue_grey-shade: $color-taupe-shade; $color-conversation-grey-shade: $color-steel-shade; -// Old colors +// Maps for easy manipulation -$blue_l: #a2d2f4; -$blue: #2090ea; -$grey_l: #f3f3f3; -$grey_l1: #bdbdbd; -$grey_l1_5: #e6e6e6; -$grey_l2: #d9d9d9; // ~ Equivalent to darken($grey_l, 10%), unreliably compiles -$grey_l3: darken($grey_l, 20%); -$grey_l4: darken($grey_l, 40%); -$grey: #616161; -$grey_d: #454545; +$conversation-colors: ( + 'red': $color-conversation-red, + 'deep_orange': $color-conversation-deep_orange, + 'brown': $color-conversation-brown, + 'pink': $color-conversation-pink, + 'purple': $color-conversation-purple, + 'indigo': $color-conversation-indigo, + 'blue': $color-conversation-blue, + 'teal': $color-conversation-teal, + 'green': $color-conversation-green, + 'light_green': $color-conversation-light_green, + 'blue_grey': $color-conversation-blue_grey +); +$conversation-colors-tint: ( + 'red': $color-conversation-red-tint, + 'deep_orange': $color-conversation-deep_orange-tint, + 'brown': $color-conversation-brown-tint, + 'pink': $color-conversation-pink-tint, + 'purple': $color-conversation-purple-tint, + 'indigo': $color-conversation-indigo-tint, + 'blue': $color-conversation-blue-tint, + 'teal': $color-conversation-teal-tint, + 'green': $color-conversation-green-tint, + 'light_green': $color-conversation-light_green-tint, + 'blue_grey': $color-conversation-blue_grey-tint +); +$conversation-colors-shade: ( + 'red': $color-conversation-red-shade, + 'deep_orange': $color-conversation-deep_orange-shade, + 'brown': $color-conversation-brown-shade, + 'pink': $color-conversation-pink-shade, + 'purple': $color-conversation-purple-shade, + 'indigo': $color-conversation-indigo-shade, + 'blue': $color-conversation-blue-shade, + 'teal': $color-conversation-teal-shade, + 'green': $color-conversation-green-shade, + 'light_green': $color-conversation-light_green-shade, + 'blue_grey': $color-conversation-blue_grey-shade +); -// A few layout variables used cross-file +// -- Non-V3 colors +// Used in spinners +$color-white-alpha-40: rgba($color-white, 0.4); + +// Used in tap-to-view error states +$color-deep-red: #ff261f; + +// Used in iOS quote composition and reference warnings +$color-signal-blue-alpha-25: rgba($color-signal-blue, 0.25); +$color-signal-blue-alpha-50: rgba($color-signal-blue, 0.5); +$color-signal-blue-tint-alpha-50: rgba($color-ios-blue-tint, 0.5); + +// -- A few layout variables used cross-file + +$left-pane-width: 320px; $header-height: 48px; -$button-height: 24px; - -$border-radius: 5px; - -$font-size: 14px; $font-size-small: (13/14) + em; diff --git a/stylesheets/manifest.scss b/stylesheets/manifest.scss index 33a4b8ff2fe6..3f7904de372f 100644 --- a/stylesheets/manifest.scss +++ b/stylesheets/manifest.scss @@ -16,10 +16,6 @@ @import 'index'; @import 'conversation'; -// Themes -@import 'ios'; -@import 'theme_dark'; - // New CSS @import 'modules'; diff --git a/ts/components/Avatar.md b/ts/components/Avatar.md index 94a7120beb44..f489e310419b 100644 --- a/ts/components/Avatar.md +++ b/ts/components/Avatar.md @@ -76,15 +76,7 @@ i18n={util.i18n} /> - ``` -### 36px +### 52px ```jsx - + - -``` - -### 48px - -```jsx - - - - - - { const hasImage = !noteToSelf && avatarPath && !imageBroken; - if (size !== 28 && size !== 36 && size !== 48 && size !== 80) { + if (size !== 28 && size !== 52 && size !== 80) { throw new Error(`Size ${size} is not supported!`); } diff --git a/ts/components/ContactListItem.tsx b/ts/components/ContactListItem.tsx index 68607de67447..a01635e75810 100644 --- a/ts/components/ContactListItem.tsx +++ b/ts/components/ContactListItem.tsx @@ -38,7 +38,7 @@ export class ContactListItem extends React.Component { name={name} phoneNumber={phoneNumber} profileName={profileName} - size={48} + size={52} /> ); } diff --git a/ts/components/ConversationListItem.md b/ts/components/ConversationListItem.md index ac997c1d2f08..f0fe1d7e8cef 100644 --- a/ts/components/ConversationListItem.md +++ b/ts/components/ConversationListItem.md @@ -5,7 +5,7 @@ { name={name} phoneNumber={phoneNumber} profileName={profileName} - size={48} + size={52} /> {this.renderUnread()} @@ -129,6 +129,7 @@ export class ConversationListItem extends React.PureComponent { timestamp={lastUpdated} extended={false} module="module-conversation-list-item__header__timestamp" + withUnread={unreadCount > 0} i18n={i18n} /> diff --git a/ts/components/LeftPane.tsx b/ts/components/LeftPane.tsx index 3f30281fc777..bbeae030f1d2 100644 --- a/ts/components/LeftPane.tsx +++ b/ts/components/LeftPane.tsx @@ -179,7 +179,7 @@ export class LeftPane extends React.Component { conversations={conversations} height={height} rowCount={length} - rowHeight={64} + rowHeight={68} rowRenderer={this.renderRow} width={width} /> diff --git a/ts/components/Lightbox.tsx b/ts/components/Lightbox.tsx index 8d6fe419bfae..14c2655e3a9e 100644 --- a/ts/components/Lightbox.tsx +++ b/ts/components/Lightbox.tsx @@ -12,8 +12,7 @@ import { formatDuration } from '../util/formatDuration'; import { LocalizerType } from '../types/Util'; const Colors = { - TEXT_SECONDARY: '#bbb', - ICON_SECONDARY: '#ccc', + ICON_SECONDARY: '#b9b9b9', }; const colorSVG = (url: string, color: string) => { diff --git a/ts/components/MessageSearchResult.tsx b/ts/components/MessageSearchResult.tsx index 8d51eaf6022a..598b79610b60 100644 --- a/ts/components/MessageSearchResult.tsx +++ b/ts/components/MessageSearchResult.tsx @@ -82,7 +82,7 @@ export class MessageSearchResult extends React.PureComponent { if (!to.isMe && !isSearchingInConversation) { return (
- {fromName} {i18n('to')}{' '} + {fromName} {i18n('toJoiner')}{' '} { noteToSelf={isNoteToSelf} phoneNumber={from.phoneNumber} profileName={from.profileName} - size={48} + size={52} /> ); } diff --git a/ts/components/StartNewConversation.tsx b/ts/components/StartNewConversation.tsx index 40b11b00835c..af35131c7242 100644 --- a/ts/components/StartNewConversation.tsx +++ b/ts/components/StartNewConversation.tsx @@ -25,7 +25,7 @@ export class StartNewConversation extends React.PureComponent { conversationType="direct" i18n={i18n} phoneNumber={phoneNumber} - size={48} + size={52} />
diff --git a/ts/components/conversation/EmbeddedContact.tsx b/ts/components/conversation/EmbeddedContact.tsx index 5b88c1334702..5eb782af029b 100644 --- a/ts/components/conversation/EmbeddedContact.tsx +++ b/ts/components/conversation/EmbeddedContact.tsx @@ -46,7 +46,7 @@ export class EmbeddedContact extends React.Component { role="button" onClick={onClick} > - {renderAvatar({ contact, i18n, size: 48, direction })} + {renderAvatar({ contact, i18n, size: 52, direction })}
{renderName({ contact, isIncoming, module })} {renderContactShorthand({ contact, isIncoming, module })} diff --git a/ts/components/conversation/Message.tsx b/ts/components/conversation/Message.tsx index a703b426948e..c251ff17e675 100644 --- a/ts/components/conversation/Message.tsx +++ b/ts/components/conversation/Message.tsx @@ -306,6 +306,7 @@ export class Message extends React.PureComponent { : null )} > + {showError ? ( { withTapToViewExpired={isTapToViewExpired} /> ) : null} - {textPending ? (
@@ -796,7 +796,7 @@ export class Message extends React.PureComponent { name={authorName} phoneNumber={authorPhoneNumber} profileName={authorProfileName} - size={36} + size={28} />
); diff --git a/ts/components/conversation/MessageDetail.tsx b/ts/components/conversation/MessageDetail.tsx index d649c0ca1411..d5cde7fdf3a1 100644 --- a/ts/components/conversation/MessageDetail.tsx +++ b/ts/components/conversation/MessageDetail.tsx @@ -48,7 +48,7 @@ export class MessageDetail extends React.Component { name={name} phoneNumber={phoneNumber} profileName={profileName} - size={48} + size={52} /> ); } diff --git a/ts/components/conversation/Timestamp.md b/ts/components/conversation/Timestamp.md index f9ac799c5bb9..3bba53a1c979 100644 --- a/ts/components/conversation/Timestamp.md +++ b/ts/components/conversation/Timestamp.md @@ -1,4 +1,4 @@ -### All major transitions +### All major transitions: Extended ```jsx function get1201() { @@ -18,166 +18,218 @@ function getDecember1159() { return getJanuary1201() - 2 * 60 * 1000; } - -
- +
+
+ {"500ms ago - all below 1 minute are 'now' -- "} +
-
- + {'Five seconds ago -- '} +
-
- + {'30 seconds ago -- '} +
-
- + {'One minute ago - in minutes -- '} +
-
- + {'30 minutes ago -- '} +
-
- + {'45 minutes ago (used to round up to 1 hour with moment) -- '} +
-
- + {'One hour ago - in hours -- '} +
-
- +
+ {'12:01am today -- '} +
-
- + {'11:59pm yesterday - adds day name -- '} +
-
- + {'24 hours ago -- '} +
-
- + {'Two days ago -- '} +
-
- + {'Seven days ago - adds month -- '} +
-
- + {'Thirty days ago -- '} +
-
- +
+ {'January 1st at 12:01am -- '} +
-
- +
+ {'December 31st at 11:59pm - adds year -- '} +
-
- + {'One year ago -- '} +
-; +
; +``` + +### All major transitions: Normal + +```jsx +function get1201() { + const d = new Date(); + d.setHours(0, 0, 1, 0); + return d.getTime(); +} +function getYesterday1159() { + return get1201() - 2 * 60 * 1000; +} +function getJanuary1201() { + const now = new Date(); + const d = new Date(now.getFullYear(), 0, 1, 0, 1); + return d.getTime(); +} +function getDecember1159() { + return getJanuary1201() - 2 * 60 * 1000; +} + +
+
+ {"500ms ago - all below 1 minute are 'now' -- "} + +
+
+ {'Five seconds ago -- '} + +
+
+ {'30 seconds ago -- '} + +
+
+ {'One minute ago - in minutes -- '} + +
+
+ {'30 minutes ago -- '} + +
+
+ {'45 minutes ago (used to round up to 1 hour with moment) -- '} + +
+
+ {'One hour ago - in hours -- '} + +
+
+ {'12:01am today -- '} + +
+
+ {'11:59pm yesterday - adds day name -- '} + +
+
+ {'24 hours ago -- '} + +
+
+ {'Two days ago -- '} + +
+
+ {'Seven days ago - adds month -- '} + +
+
+ {'Thirty days ago -- '} + +
+
+ {'January 1st at 12:01am -- '} + +
+
+ {'December 31st at 11:59pm - adds year -- '} + +
+
+ {'One year ago -- '} + +
+
; ``` diff --git a/ts/components/conversation/Timestamp.tsx b/ts/components/conversation/Timestamp.tsx index d9a3a283d4ec..8abe5bd24670 100644 --- a/ts/components/conversation/Timestamp.tsx +++ b/ts/components/conversation/Timestamp.tsx @@ -13,6 +13,7 @@ interface Props { withImageNoCaption?: boolean; withSticker?: boolean; withTapToViewExpired?: boolean; + withUnread?: boolean; direction?: 'incoming' | 'outgoing'; i18n: LocalizerType; } @@ -52,6 +53,7 @@ export class Timestamp extends React.Component { withImageNoCaption, withSticker, withTapToViewExpired, + withUnread, extended, } = this.props; const moduleName = module || 'module-timestamp'; @@ -69,7 +71,8 @@ export class Timestamp extends React.Component { ? `${moduleName}--${direction}-with-tap-to-view-expired` : null, withImageNoCaption ? `${moduleName}--with-image-no-caption` : null, - withSticker ? `${moduleName}--with-sticker` : null + withSticker ? `${moduleName}--with-sticker` : null, + withUnread ? `${moduleName}--with-unread` : null )} title={moment(timestamp).format('llll')} > diff --git a/ts/components/conversation/TypingBubble.tsx b/ts/components/conversation/TypingBubble.tsx index cb40d0218de5..1f8d87dc144b 100644 --- a/ts/components/conversation/TypingBubble.tsx +++ b/ts/components/conversation/TypingBubble.tsx @@ -42,7 +42,7 @@ export class TypingBubble extends React.PureComponent { name={name} phoneNumber={phoneNumber} profileName={profileName} - size={36} + size={28} />
); diff --git a/ts/components/conversation/_contactUtil.tsx b/ts/components/conversation/_contactUtil.tsx index e37a2c3cb5cc..62f684437947 100644 --- a/ts/components/conversation/_contactUtil.tsx +++ b/ts/components/conversation/_contactUtil.tsx @@ -17,7 +17,7 @@ export function renderAvatar({ }: { contact: ContactType; i18n: LocalizerType; - size: number; + size: 28 | 52 | 80; direction?: 'outgoing' | 'incoming'; }) { const { avatar } = contact; diff --git a/ts/util/formatRelativeTime.ts b/ts/util/formatRelativeTime.ts index 80796dc513ef..9727414b8740 100644 --- a/ts/util/formatRelativeTime.ts +++ b/ts/util/formatRelativeTime.ts @@ -1,6 +1,12 @@ import moment from 'moment'; import { LocalizerType } from '../types/Util'; +// Only applies in the english locales, but it ensures that the format +// is what we want. +function replaceSuffix(time: string) { + return time.replace(/ PM$/, 'pm').replace(/ AM$/, 'am'); +} + const getExtendedFormats = (i18n: LocalizerType) => ({ y: 'lll', M: `${i18n('timestampFormat_M') || 'MMM D'} LT`, @@ -38,19 +44,15 @@ export function formatRelativeTime( const diff = moment.duration(now.diff(timestamp)); if (diff.years() >= 1 || !isYear(timestamp)) { - return timestamp.format(formats.y); + return replaceSuffix(timestamp.format(formats.y)); } else if (diff.months() >= 1 || diff.days() > 6) { - return timestamp.format(formats.M); + return replaceSuffix(timestamp.format(formats.M)); } else if (diff.days() >= 1 || !isToday(timestamp)) { - return timestamp.format(formats.d); + return replaceSuffix(timestamp.format(formats.d)); } else if (diff.hours() >= 1) { - const key = extended ? 'hoursAgo' : 'hoursAgoShort'; - - return i18n(key, [String(diff.hours())]); + return i18n('hoursAgo', [String(diff.hours())]); } else if (diff.minutes() >= 1) { - const key = extended ? 'minutesAgo' : 'minutesAgoShort'; - - return i18n(key, [String(diff.minutes())]); + return i18n('minutesAgo', [String(diff.minutes())]); } return i18n('justNow');