@stream-io/video-styling 1.15.1 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/css/embedded.css +2592 -1498
  3. package/dist/css/embedded.css.map +1 -1
  4. package/dist/css/styles.css +2388 -1222
  5. package/dist/css/styles.css.map +1 -1
  6. package/index.scss +4 -2
  7. package/package.json +1 -1
  8. package/project.json +3 -0
  9. package/src/AudioBlockedNotification/AudioBlockedNotification-layout.scss +9 -9
  10. package/src/AudioBlockedNotification/AudioBlockedNotification-theme.scss +6 -11
  11. package/src/Avatar/Avatar-layout.scss +21 -5
  12. package/src/Avatar/Avatar-theme.scss +33 -9
  13. package/src/Badge/Badge-layout.scss +52 -0
  14. package/src/Badge/Badge-theme.scss +39 -0
  15. package/src/Badge/index.scss +2 -0
  16. package/src/Button/Button-layout.scss +62 -89
  17. package/src/Button/Button-theme.scss +79 -144
  18. package/src/Button/CompositeButton.scss +125 -0
  19. package/src/Button/index.scss +1 -0
  20. package/src/CallControls/CallControls-layout.scss +27 -63
  21. package/src/CallControls/CancelCallButton.scss +39 -85
  22. package/src/CallLayout/LivestreamLayout-layout.scss +80 -77
  23. package/src/CallLayout/LivestreamLayout-theme.scss +23 -0
  24. package/src/CallLayout/PaginatedGridLayout-layout.scss +8 -8
  25. package/src/CallLayout/PipLayout-layout.scss +26 -20
  26. package/src/CallLayout/PipLayout-theme.scss +2 -1
  27. package/src/CallLayout/SpeakerLayout-layout.scss +13 -13
  28. package/src/CallLayout/index.scss +1 -0
  29. package/src/CallParticipantList/CallParticiantListingItem-layout.scss +6 -8
  30. package/src/CallParticipantList/CallParticiantListingItem-theme.scss +19 -17
  31. package/src/CallParticipantList/CallParticipantList-layout.scss +25 -19
  32. package/src/CallRecodingList/CallRecordingList-layout.scss +46 -27
  33. package/src/CallRecodingList/CallRecordingList-theme.scss +25 -37
  34. package/src/DeviceSettings/DeviceSettings-layout.scss +154 -69
  35. package/src/DropdownSelect/DropdownSelect.scss +62 -52
  36. package/src/Embedded/_base.scss +2 -2
  37. package/src/Embedded/call/CallLayout-layout.scss +22 -12
  38. package/src/Embedded/call/CallLayout-theme.scss +2 -2
  39. package/src/Embedded/livestream/Livestream-layout.scss +28 -41
  40. package/src/Embedded/livestream/Livestream-theme.scss +12 -34
  41. package/src/Embedded/shared/BlurToggleButton/BlurToggleButton-layout.scss +8 -20
  42. package/src/Embedded/shared/BlurToggleButton/BlurToggleButton-theme.scss +1 -19
  43. package/src/Embedded/shared/CallControls/CallControls-layout.scss +10 -11
  44. package/src/Embedded/shared/CallControls/CallControls-theme.scss +5 -7
  45. package/src/Embedded/shared/ConnectionNotification/ConnectionNotification-layout.scss +1 -1
  46. package/src/Embedded/shared/EmbeddedParticipantViewUI/EmbeddedParticipantViewUI.scss +2 -2
  47. package/src/Embedded/shared/ErrorScreen/ErrorScreen-layout.scss +3 -3
  48. package/src/Embedded/shared/Feedback/CallFeedback-layout.scss +21 -36
  49. package/src/Embedded/shared/Feedback/CallFeedback-theme.scss +11 -33
  50. package/src/Embedded/shared/Icons.scss +6 -8
  51. package/src/Embedded/shared/JoinError/JoinError-layout.scss +7 -3
  52. package/src/Embedded/shared/JoinError/JoinError-theme.scss +3 -3
  53. package/src/Embedded/shared/LoadingScreen/LoadingScreen-layout.scss +4 -4
  54. package/src/Embedded/shared/Lobby/Lobby-layout.scss +66 -55
  55. package/src/Embedded/shared/Lobby/Lobby-theme.scss +20 -15
  56. package/src/Icon/Icon-layout.scss +3 -2
  57. package/src/Icon/Icon-theme.scss +59 -20
  58. package/src/LoadingIndicator/LoadingIndicator-layout.scss +5 -0
  59. package/src/LoadingIndicator/LoadingIndicator-theme.scss +4 -3
  60. package/src/Menu/GenericMenu-layout.scss +56 -29
  61. package/src/Menu/Menu-theme.scss +3 -3
  62. package/src/Menu/Portal-layout.scss +1 -1
  63. package/src/Notification/Notification-layout.scss +13 -8
  64. package/src/Notification/Notification-theme.scss +8 -14
  65. package/src/ParticipantView/ParticipantView-layout.scss +80 -77
  66. package/src/ParticipantView/ParticipantView-theme.scss +28 -0
  67. package/src/ParticipantView/index.scss +1 -0
  68. package/src/Permissions/Permissions-layout.scss +16 -23
  69. package/src/Reaction/Reaction-layout.scss +3 -3
  70. package/src/RingingCall/RingingCall-layout.scss +8 -7
  71. package/src/RingingCall/RingingCall-theme.scss +17 -16
  72. package/src/ScreenShareOverlay/ScreenShareOverlay-layout.scss +6 -14
  73. package/src/ScreenShareOverlay/ScreenShareOverlay-theme.scss +6 -11
  74. package/src/Search/SearchInput-layout.scss +16 -10
  75. package/src/Search/SearchInput-theme.scss +41 -21
  76. package/src/StreamCall.scss +4 -4
  77. package/src/Tooltip/Tooltip-layout.scss +11 -3
  78. package/src/Tooltip/Tooltip-theme.scss +8 -25
  79. package/src/Video/Video-theme.scss +1 -1
  80. package/src/Video/VideoPlaceholder-layout.scss +0 -14
  81. package/src/Video/VideoPlaceholder-theme.scss +2 -13
  82. package/src/VideoPreview/VideoPreview-layout.scss +2 -3
  83. package/src/VideoPreview/VideoPreview-theme.scss +22 -15
  84. package/src/_icons.scss +56 -0
  85. package/src/_shadows.scss +13 -0
  86. package/src/_variable-tokens.scss +10 -0
  87. package/src/tokens/generated/dark.scss +167 -0
  88. package/src/tokens/generated/light.scss +853 -0
  89. package/src/CallStats.scss +0 -118
  90. package/src/_global-theme-variables.scss +0 -167
@@ -1,19 +1,14 @@
1
1
  .str-video__screen-share-overlay {
2
- background: var(--str-video__overlay-color);
2
+ background: var(--str-video__background-core-overlay-dark-strong);
3
+ color: var(--str-video__text-on-accent);
3
4
  backdrop-filter: blur(3px);
4
5
  border-radius: inherit;
5
6
 
6
- .str-video__screen-share-overlay__title {
7
- font-size: 1.3rem;
7
+ & > .str-video__icon {
8
+ background-color: var(--str-video__text-on-accent);
8
9
  }
9
10
 
10
- .str-video__screen-share-overlay__button {
11
- color: white;
12
- background: var(--str-video__danger-color);
13
- border-radius: var(--str-video__border-radius-xs);
14
-
15
- &:hover {
16
- background-color: var(--str-video__danger-color--accent);
17
- }
11
+ .str-video__screen-share-overlay__title {
12
+ font-size: var(--str-video__typography-font-size-xl);
18
13
  }
19
14
  }
@@ -1,29 +1,35 @@
1
1
  .str-video__search-input__container {
2
2
  display: flex;
3
- gap: 0.5rem;
4
- padding: 0.5rem 0.75rem;
5
- margin-inline: -0.25rem;
3
+ align-items: center;
4
+ gap: var(--str-video__spacing-xs);
5
+ padding: var(--str-video__spacing-xs) var(--str-video__spacing-sm);
6
+
7
+ &.str-video__search-input__container--active {
8
+ padding-inline-end: var(--str-video__spacing-xs);
9
+ }
6
10
 
7
11
  input {
8
12
  flex: 1;
9
13
  min-width: 0;
14
+ padding-block: var(--str-video__spacing-xxxs);
10
15
  }
11
16
 
12
17
  .str-video__search-input__clear-btn {
13
18
  display: flex;
14
19
  align-items: center;
15
20
  justify-content: center;
16
- padding: 0;
17
- }
18
-
19
- .str-video__search-input__icon {
20
- padding: 0.25rem;
21
+ flex-shrink: 0;
22
+ inline-size: var(--str-video__button-visual-height-xs);
23
+ block-size: var(--str-video__button-visual-height-xs);
24
+ padding: var(--str-video__button-padding-y-xs)
25
+ var(--str-video__button-padding-x-icon-only-xs);
21
26
  }
22
27
 
23
28
  .str-video__search-input__icon--active,
24
29
  .str-video__search-input__icon {
25
30
  display: inline-block;
26
- width: 1.125rem;
27
- height: 1.125rem;
31
+ flex-shrink: 0;
32
+ inline-size: var(--str-video__icon-size-sm);
33
+ block-size: var(--str-video__icon-size-sm);
28
34
  }
29
35
  }
@@ -1,37 +1,51 @@
1
1
  @use '../utils';
2
2
 
3
3
  .str-video {
4
- --str-video__search-input__container--color: var(--str-video__text-color1);
5
- --str-video__search-input__container--background-color: var(
6
- --str-video__background-color0
4
+ --str-video__search-input__container--color: var(
5
+ --str-video__input-text-default
7
6
  );
7
+ --str-video__search-input__container--background-color: transparent;
8
8
  --str-video__search-input__container--border-radius: var(
9
- --str-video__border-radius-circle
9
+ --str-video__input-radius-search-input
10
10
  );
11
- --str-video__search-input__container--border-block-start: 1px solid
12
- transparent;
13
- --str-video__search-input__container--border-block-end: 1px solid transparent;
14
- --str-video__search-input__container--border-inline-start: 1px solid
15
- transparent;
16
- --str-video__search-input__container--border-inline-end: 1px solid transparent;
11
+ --str-video__search-input__container--box-shadow: inset 0 0 0
12
+ var(--str-video__w100) var(--str-video__border-core-default);
13
+ --str-video__search-input__container--border-block-start: none;
14
+ --str-video__search-input__container--border-block-end: none;
15
+ --str-video__search-input__container--border-inline-start: none;
16
+ --str-video__search-input__container--border-inline-end: none;
17
17
 
18
- --str-video__search-input__placeholder-color: var(--str-video__text-color2);
18
+ --str-video__search-input__placeholder-color: var(
19
+ --str-video__input-text-placeholder
20
+ );
19
21
 
20
- --str-video__search-input__icon--color: var(--str-video__text-color1);
22
+ --str-video__search-input__icon--color: var(--str-video__input-text-icon);
21
23
  }
22
24
 
23
- .str-video__search-input__container.str-video__search-input__container--active {
24
- border-color: var(--str-video__primary-color);
25
- }
26
25
  .str-video__search-input__container {
27
26
  @include utils.component-layer-overrides('search-input__container');
28
27
 
28
+ &:hover {
29
+ box-shadow:
30
+ inset 0 0 0 var(--str-video__w100) var(--str-video__border-utility-hover),
31
+ inset 0 0 0 var(--str-video__w100) var(--str-video__border-core-default);
32
+ }
33
+
34
+ &:focus-within {
35
+ box-shadow:
36
+ inset 0 0 0 var(--str-video__w100) var(--str-video__border-utility-active),
37
+ inset 0 0 0 var(--str-video__w200)
38
+ var(--str-video__border-utility-focused);
39
+ }
40
+
29
41
  input {
30
42
  background-color: transparent;
31
43
  border: none;
32
44
  outline: none;
33
45
  color: inherit;
34
- font-size: 13px;
46
+ font-size: var(--str-video__typography-font-size-sm);
47
+ font-weight: var(--str-video__typography-font-weight-regular);
48
+ line-height: var(--str-video__typography-line-height-normal);
35
49
 
36
50
  &::placeholder {
37
51
  color: var(--str-video__search-input__placeholder-color);
@@ -42,23 +56,29 @@
42
56
  @include utils.apply-mask-image(
43
57
  var(--str-video__icon--magnifier-glass),
44
58
  var(--str-video__search-input__icon--color),
45
- 0.75rem 0.75rem
59
+ var(--str-video__icon-size-sm)
46
60
  );
47
61
  }
62
+
48
63
  .str-video__search-input__clear-btn {
49
64
  background-color: transparent;
50
- border-radius: var(--str-video__border-radius-circle);
65
+ border-radius: var(--str-video__button-radius-full);
51
66
  border: none;
52
67
 
53
68
  &:hover {
54
69
  cursor: pointer;
70
+ background-color: var(--str-video__background-utility-hover);
71
+ }
72
+
73
+ &:active {
74
+ background-color: var(--str-video__background-utility-pressed);
55
75
  }
56
76
 
57
77
  .str-video__search-input__icon--active {
58
78
  @include utils.apply-mask-image(
59
- var(--str-video__icon--close),
60
- var(--str-video__search-input__icon--color),
61
- 0.75rem 0.75rem
79
+ var(--str-video__icon--x-circle),
80
+ var(--str-video__button-secondary-text),
81
+ var(--str-video__icon-size-sm)
62
82
  );
63
83
  }
64
84
  }
@@ -1,6 +1,6 @@
1
1
  .str-video__call {
2
- background-color: var(--str-video__background-color2);
3
- color: var(--str-video__text-color1);
2
+ background-color: var(--str-video__background-core-elevation-1);
3
+ color: var(--str-video__text-primary);
4
4
  width: 100%;
5
5
  height: 100%;
6
6
  min-height: 0;
@@ -10,7 +10,7 @@
10
10
  flex-direction: column;
11
11
 
12
12
  .str-video {
13
- background-color: var(--str-video__background-color2);
14
- color: var(--str-video__text-color1);
13
+ background-color: var(--str-video__background-core-elevation-1);
14
+ color: var(--str-video__text-primary);
15
15
  }
16
16
  }
@@ -1,10 +1,18 @@
1
1
  .str-video__tooltip {
2
2
  display: flex;
3
3
  justify-content: center;
4
- padding: var(--str-video__spacing-sm);
4
+ gap: var(--str-video__spacing-xs);
5
+ padding-block: var(--str-video__spacing-xxs);
6
+ padding-inline: var(--str-video__spacing-xs);
7
+ border-radius: var(--str-video__radius-md);
8
+
9
+ font-size: var(--str-video__typography-font-size-xs);
10
+ font-weight: var(--str-video__typography-font-weight-semi-bold);
11
+ line-height: var(--str-video__typography-line-height-tight);
12
+
5
13
  z-index: 4;
6
- max-width: 250px;
7
- width: max-content;
14
+ inline-size: max-content;
15
+ max-inline-size: 250px;
8
16
  white-space: initial;
9
17
  overflow-wrap: break-word;
10
18
  }
@@ -1,39 +1,22 @@
1
1
  @use '../utils';
2
2
 
3
3
  .str-video {
4
- /* The border radius used for the borders of the component */
5
- --str-video__tooltip--border-radius: var(--str-video__border-radius-xs);
4
+ --str-video__tooltip-bg: var(--str-video__background-core-inverse);
6
5
 
7
- /* The text/icon color of the component */
8
- --str-video__tooltip--color: var(--str-video__text-color1);
9
-
10
- /* The background color of the component */
11
- --str-video__tooltip--background-color: var(
12
- --str-video__button-default-hover
13
- );
14
-
15
- /* Top border of the component */
6
+ --str-video__tooltip--background-color: var(--str-video__tooltip-bg);
7
+ --str-video__tooltip--color: var(--str-video__text-on-accent);
8
+ --str-video__tooltip--box-shadow: var(--str-video__box-shadow-3);
9
+ --str-video__tooltip--border-radius: var(--str-video__radius-md);
16
10
  --str-video__tooltip--border-block-start: none;
17
-
18
- /* Bottom border of the component */
19
11
  --str-video__tooltip--border-block-end: none;
20
-
21
- /* Left (right in RTL layout) border of the component */
22
12
  --str-video__tooltip--border-inline-start: none;
23
-
24
- /* Right (left in RTL layout) border of the component */
25
13
  --str-video__tooltip--border-inline-end: none;
26
14
 
27
- /* Box shadow applied to the component */
28
- --str-video__tooltip--box-shadow: none;
15
+ &.str-video__theme-dark {
16
+ --str-video__tooltip-bg: var(--str-video__background-core-elevation-2);
17
+ }
29
18
  }
30
19
 
31
20
  .str-video__tooltip {
32
21
  @include utils.component-layer-overrides('tooltip');
33
- font-size: 14px;
34
- line-height: 1rem;
35
-
36
- &::after {
37
- background-color: var(--str-video__tooltip-background-color);
38
- }
39
22
  }
@@ -1,3 +1,3 @@
1
1
  .str-video__video {
2
- background-color: var(--str-video__background-color5);
2
+ background-color: var(--str-video__background-core-surface-subtle);
3
3
  }
@@ -5,18 +5,4 @@
5
5
  display: flex;
6
6
  align-items: center;
7
7
  justify-content: center;
8
-
9
- .str-video__video-placeholder__avatar {
10
- width: 100px;
11
- height: 100px;
12
- object-fit: cover;
13
- }
14
-
15
- .str-video__video-placeholder__initials-fallback {
16
- display: flex;
17
- justify-content: center;
18
- align-items: center;
19
- width: 100px;
20
- height: 100px;
21
- }
22
8
  }
@@ -1,16 +1,5 @@
1
1
  .str-video__video-placeholder {
2
- background: var(--str-video__base-color6);
2
+ background: var(--str-video__background-core-surface-subtle);
3
+ border: var(--str-video__w100) solid var(--str-video__border-core-default);
3
4
  border-radius: inherit;
4
-
5
- .str-video__video-placeholder__avatar {
6
- border-radius: var(--str-video__border-radius-circle);
7
- }
8
-
9
- .str-video__video-placeholder__initials-fallback {
10
- background-color: var(--str-video__primary-color);
11
- border-radius: var(--str-video__border-radius-circle);
12
- font-size: 32px;
13
- font-weight: 600;
14
- text-transform: uppercase;
15
- }
16
5
  }
@@ -2,9 +2,8 @@
2
2
  display: flex;
3
3
  justify-content: center;
4
4
  align-items: center;
5
- $container-width: 500px;
6
- width: $container-width;
7
- height: calc(calc($container-width / 12) * 9);
5
+ width: 100%;
6
+ aspect-ratio: 16 / 9;
8
7
 
9
8
  .str-video__video-preview {
10
9
  object-fit: cover;
@@ -2,36 +2,43 @@
2
2
 
3
3
  .str-video {
4
4
  /* The font color applied inside the component */
5
- --str-video__video-preview-container--color: var(--str-video__text-color1);
5
+ --str-video__video-preview-container--color: var(--str-video__text-primary);
6
6
 
7
7
  /* The background color of the component */
8
8
  --str-video__video-preview-container--background-color: var(
9
- --str-video__background-color5
9
+ --str-video__background-core-surface-subtle
10
10
  );
11
11
 
12
12
  /* The border radius used for the borders of the component */
13
13
  --str-video__video-preview-container--border-radius: var(
14
- --str-video__border-radius-xs
14
+ --str-video__radius-2xl
15
15
  );
16
-
17
16
  /* The border used for the borders of the component */
18
- --str-video__video-preview-container--border-block-start: 4px solid
19
- var(--str-video__primary-color);
20
-
17
+ --str-video__video-preview-container--border-block-start: var(
18
+ --str-video__w100
19
+ )
20
+ solid var(--str-video__border-core-default);
21
21
  /* The border used for the borders of the component */
22
- --str-video__video-preview-container--border-block-end: 4px solid
23
- var(--str-video__primary-color);
24
-
22
+ --str-video__video-preview-container--border-block-end: var(--str-video__w100)
23
+ solid var(--str-video__border-core-default);
25
24
  /* The border used for the borders of the component */
26
- --str-video__video-preview-container--border-inline-start: 4px solid
27
- var(--str-video__primary-color);
28
-
25
+ --str-video__video-preview-container--border-inline-start: var(
26
+ --str-video__w100
27
+ )
28
+ solid var(--str-video__border-core-default);
29
29
  /* The border used for the borders of the component */
30
- --str-video__video-preview-container--border-inline-end: 4px solid
31
- var(--str-video__primary-color);
30
+ --str-video__video-preview-container--border-inline-end: var(
31
+ --str-video__w100
32
+ )
33
+ solid var(--str-video__border-core-default);
32
34
  }
33
35
 
34
36
  .str-video__video-preview-container {
35
37
  @include utils.component-layer-overrides('video-preview-container');
36
38
  overflow: hidden;
39
+
40
+ &--speaking {
41
+ outline: var(--str-video__w200) solid var(--str-video__accent-primary);
42
+ outline-offset: calc(var(--str-video__w200) * -1);
43
+ }
37
44
  }