@stream-io/video-styling 1.10.0 → 1.11.0

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 (42) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/css/embedded.css +3630 -0
  3. package/dist/css/embedded.css.map +1 -0
  4. package/dist/css/styles.css +13 -2
  5. package/dist/css/styles.css.map +1 -1
  6. package/embedded.scss +2 -0
  7. package/package.json +3 -3
  8. package/src/CallLayout/LivestreamLayout-layout.scss +16 -2
  9. package/src/Embedded/_base.scss +9 -0
  10. package/src/Embedded/call/CallLayout-layout.scss +113 -0
  11. package/src/Embedded/call/CallLayout-theme.scss +7 -0
  12. package/src/Embedded/call/index.scss +2 -0
  13. package/src/Embedded/index.scss +4 -0
  14. package/src/Embedded/livestream/Livestream-layout.scss +152 -0
  15. package/src/Embedded/livestream/Livestream-theme.scss +86 -0
  16. package/src/Embedded/livestream/index.scss +2 -0
  17. package/src/Embedded/shared/BlurToggleButton/BlurToggleButton-layout.scss +26 -0
  18. package/src/Embedded/shared/BlurToggleButton/BlurToggleButton-theme.scss +21 -0
  19. package/src/Embedded/shared/BlurToggleButton/index.scss +2 -0
  20. package/src/Embedded/shared/CallControls/CallControls-layout.scss +79 -0
  21. package/src/Embedded/shared/CallControls/CallControls-theme.scss +14 -0
  22. package/src/Embedded/shared/CallControls/index.scss +2 -0
  23. package/src/Embedded/shared/ConnectionNotification/ConnectionNotification-layout.scss +15 -0
  24. package/src/Embedded/shared/ConnectionNotification/index.scss +1 -0
  25. package/src/Embedded/shared/EmbeddedParticipantViewUI/EmbeddedParticipantViewUI.scss +11 -0
  26. package/src/Embedded/shared/EmbeddedParticipantViewUI/index.scss +1 -0
  27. package/src/Embedded/shared/ErrorScreen/ErrorScreen-layout.scss +16 -0
  28. package/src/Embedded/shared/ErrorScreen/index.scss +1 -0
  29. package/src/Embedded/shared/Feedback/CallFeedback-layout.scss +153 -0
  30. package/src/Embedded/shared/Feedback/CallFeedback-theme.scss +67 -0
  31. package/src/Embedded/shared/Feedback/index.scss +2 -0
  32. package/src/Embedded/shared/Icons.scss +62 -0
  33. package/src/Embedded/shared/JoinError/JoinError-layout.scss +17 -0
  34. package/src/Embedded/shared/JoinError/JoinError-theme.scss +8 -0
  35. package/src/Embedded/shared/JoinError/index.scss +2 -0
  36. package/src/Embedded/shared/LoadingScreen/LoadingScreen-layout.scss +14 -0
  37. package/src/Embedded/shared/LoadingScreen/index.scss +1 -0
  38. package/src/Embedded/shared/Lobby/Lobby-layout.scss +176 -0
  39. package/src/Embedded/shared/Lobby/Lobby-theme.scss +26 -0
  40. package/src/Embedded/shared/Lobby/index.scss +2 -0
  41. package/src/Embedded/shared/index.scss +10 -0
  42. package/src/_utils.scss +22 -0
package/embedded.scss ADDED
@@ -0,0 +1,2 @@
1
+ @use 'index';
2
+ @use 'src/Embedded';
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@stream-io/video-styling",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "license": "See license in LICENSE",
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",
7
- "start": "sass --watch index.scss ./dist/css/styles.css",
8
- "build": "sass --embed-sources index.scss ./dist/css/styles.css"
7
+ "start": "sass --watch index.scss:./dist/css/styles.css embedded.scss:./dist/css/embedded.css",
8
+ "build": "sass --embed-sources index.scss:./dist/css/styles.css embedded.scss:./dist/css/embedded.css"
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
@@ -70,6 +70,22 @@
70
70
  padding: 0 20px;
71
71
  }
72
72
 
73
+ .str-video__livestream-layout__overlay__bar-left,
74
+ .str-video__livestream-layout__overlay__bar-center,
75
+ .str-video__livestream-layout__overlay__bar-right {
76
+ flex: 1;
77
+ display: flex;
78
+ align-items: center;
79
+ }
80
+
81
+ .str-video__livestream-layout__overlay__bar-center {
82
+ justify-content: center;
83
+ }
84
+
85
+ .str-video__livestream-layout__overlay__bar-right {
86
+ justify-content: flex-end;
87
+ }
88
+
73
89
  .str-video__livestream-layout__live-badge {
74
90
  padding: 4px 8px;
75
91
  border-radius: var(--str-video__border-radius-xxs);
@@ -88,7 +104,6 @@
88
104
  }
89
105
 
90
106
  .str-video__livestream-layout__speaker-name {
91
- flex: 1;
92
107
  font-size: 13px;
93
108
  text-overflow: ellipsis;
94
109
  overflow: hidden;
@@ -96,7 +111,6 @@
96
111
  }
97
112
 
98
113
  .str-video__livestream-layout__duration {
99
- flex: 1;
100
114
  text-align: center;
101
115
  }
102
116
 
@@ -0,0 +1,9 @@
1
+ .str-video.str-video__embedded {
2
+ background-color: var(--str-video__base-color4);
3
+ color: var(--str-video__text-color1);
4
+ position: relative;
5
+ overflow: hidden;
6
+ width: 100%;
7
+ height: 100%;
8
+ container-type: size;
9
+ }
@@ -0,0 +1,113 @@
1
+ .str-video__embedded-call {
2
+ display: flex;
3
+ position: relative;
4
+ flex-direction: column;
5
+ height: 100%;
6
+ padding: var(--str-video__spacing-sm);
7
+ overflow: auto hidden;
8
+
9
+ .str-video__permission-requests {
10
+ width: 100%;
11
+ max-width: 960px;
12
+ margin-left: auto;
13
+ margin-right: auto;
14
+ }
15
+ }
16
+
17
+ .str-video__embedded-call-header {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+ padding: var(--str-video__spacing-sm) var(--str-video__spacing-md);
22
+ background-color: var(--str-video__base-color7);
23
+ border-radius: var(--str-video__border-radius-xxl);
24
+ }
25
+
26
+ .str-video__embedded-layout {
27
+ display: flex;
28
+ flex: 1;
29
+ min-height: 0;
30
+ gap: var(--str-video__spacing-md);
31
+ padding: var(--str-video__spacing-md);
32
+ position: relative;
33
+ }
34
+
35
+ .str-video__embedded-layout__stage {
36
+ display: flex;
37
+ flex-direction: column;
38
+ flex: 1;
39
+ min-width: 0;
40
+ }
41
+
42
+ .str-video__embedded-notifications {
43
+ position: absolute;
44
+ bottom: 60px;
45
+ left: var(--str-video__spacing-lg);
46
+ right: 0;
47
+ z-index: 3;
48
+ }
49
+
50
+ .str-video__embedded-sidebar {
51
+ position: absolute;
52
+ border-radius: var(--str-video__border-radius-md);
53
+ height: calc(100% - 60px);
54
+
55
+ &.str-video__embedded-sidebar--open {
56
+ z-index: 2;
57
+ left: 0;
58
+ bottom: 0;
59
+ display: flex;
60
+ flex-direction: column;
61
+ width: 100%;
62
+ }
63
+
64
+ .str-video__participant-list {
65
+ flex: 1;
66
+ min-height: 0;
67
+ }
68
+ }
69
+
70
+ .str-video__embedded-participants {
71
+ display: flex;
72
+ flex-direction: column;
73
+ flex: 1;
74
+ min-height: 0;
75
+ width: 100%;
76
+ border-radius: var(--str-video__border-radius-md);
77
+ padding: var(--str-video__spacing-lg);
78
+ margin: var(--str-video__spacing-lg) 0;
79
+ }
80
+
81
+ @container (min-width: 700px) {
82
+ .str-video__embedded-call-header {
83
+ display: none;
84
+ }
85
+
86
+ .str-video__embedded-sidebar {
87
+ position: relative;
88
+ width: 0;
89
+ height: auto;
90
+ overflow: hidden;
91
+ transition: width 0.3s;
92
+ z-index: 1;
93
+
94
+ &.str-video__embedded-sidebar--open {
95
+ width: 350px;
96
+ }
97
+ }
98
+
99
+ .str-video__embedded-participants {
100
+ max-width: 350px;
101
+ min-width: 350px;
102
+ height: 100%;
103
+ margin: 0;
104
+ overflow-y: scroll;
105
+
106
+ &::-webkit-scrollbar {
107
+ display: none;
108
+ }
109
+
110
+ -ms-overflow-style: none;
111
+ scrollbar-width: none;
112
+ }
113
+ }
@@ -0,0 +1,7 @@
1
+ .str-video__embedded-call {
2
+ background-color: var(--str-video__base-color4);
3
+ }
4
+
5
+ .str-video__embedded-participants {
6
+ background-color: var(--str-video__base-color7);
7
+ }
@@ -0,0 +1,2 @@
1
+ @use 'CallLayout-layout';
2
+ @use 'CallLayout-theme';
@@ -0,0 +1,4 @@
1
+ @use 'base';
2
+ @use 'shared';
3
+ @use 'call';
4
+ @use 'livestream';
@@ -0,0 +1,152 @@
1
+ .str-video__embedded-livestream {
2
+ height: 100%;
3
+ }
4
+
5
+ .str-video__embedded-livestream-duration {
6
+ display: flex;
7
+ align-items: center;
8
+ gap: var(--str-video__spacing-md);
9
+
10
+ &__live-badge,
11
+ &__backstage-badge {
12
+ padding: var(--str-video__spacing-xs) var(--str-video__spacing-md);
13
+ border-radius: var(--str-video__spacing-xs);
14
+ font-size: 0.875rem;
15
+ font-weight: 600;
16
+ }
17
+
18
+ &__viewers {
19
+ display: flex;
20
+ align-items: center;
21
+ gap: var(--str-video__spacing-xs);
22
+ }
23
+
24
+ &__eye-icon {
25
+ display: inline-block;
26
+ width: 1.125rem;
27
+ height: 1.125rem;
28
+ -webkit-mask-image: var(--str-video__icon--eye);
29
+ mask-image: var(--str-video__icon--eye);
30
+ -webkit-mask-size: contain;
31
+ mask-size: contain;
32
+ -webkit-mask-repeat: no-repeat;
33
+ mask-repeat: no-repeat;
34
+ }
35
+
36
+ &__count {
37
+ font-size: 0.875rem;
38
+ }
39
+
40
+ &__elapsed {
41
+ font-size: 0.875rem;
42
+ }
43
+ }
44
+
45
+ .str-video__embedded-go-live-button,
46
+ .str-video__embedded-end-stream-button {
47
+ display: inline-flex;
48
+ flex: none;
49
+ align-items: center;
50
+ justify-content: center;
51
+ gap: var(--str-video__spacing-sm);
52
+ height: 34px;
53
+ min-width: 140px;
54
+ padding: 0 var(--str-video__spacing-lg);
55
+ border: none;
56
+ border-radius: var(--str-video__border-radius-xxl);
57
+ font-size: 0.875rem;
58
+ font-weight: 500;
59
+ cursor: pointer;
60
+ transition: background 0.15s ease;
61
+ }
62
+
63
+ .str-video__embedded-go-live-button {
64
+ svg {
65
+ width: 18px;
66
+ height: 14px;
67
+ }
68
+ }
69
+
70
+ .str-video__embedded-end-stream-button {
71
+ .str-video__icon {
72
+ width: 20px;
73
+ height: 20px;
74
+ }
75
+ }
76
+
77
+ .str-video__embedded-viewer-lobby {
78
+ display: flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ height: 100%;
82
+ padding: var(--str-video__spacing-xl);
83
+
84
+ &__content {
85
+ display: flex;
86
+ flex-direction: column;
87
+ align-items: center;
88
+ text-align: center;
89
+ max-width: 400px;
90
+ }
91
+
92
+ &__icon {
93
+ .str-video__icon {
94
+ width: 56px;
95
+ height: 56px;
96
+ }
97
+ }
98
+
99
+ &__title {
100
+ margin: var(--str-video__spacing-xl) 0 var(--str-video__spacing-sm);
101
+ font-size: 1.25rem;
102
+ font-weight: 600;
103
+ line-height: 1.3;
104
+ }
105
+
106
+ &__starts-at {
107
+ margin: var(--str-video__spacing-sm);
108
+ font-size: 0.875rem;
109
+ }
110
+
111
+ &__participant-count {
112
+ margin: var(--str-video__spacing-md);
113
+ font-size: 0.8125rem;
114
+ }
115
+
116
+ &__actions {
117
+ display: flex;
118
+ flex-direction: column;
119
+ align-items: center;
120
+ gap: var(--str-video__spacing-lg);
121
+ margin-top: var(--str-video__spacing-xl);
122
+
123
+ .str-video__button {
124
+ min-width: 180px;
125
+ }
126
+ }
127
+
128
+ &__auto-join {
129
+ display: flex;
130
+ align-items: center;
131
+ gap: var(--str-video__spacing-sm);
132
+ font-size: 0.875rem;
133
+ cursor: pointer;
134
+
135
+ input[type='checkbox'] {
136
+ cursor: pointer;
137
+ }
138
+ }
139
+
140
+ &__join-error {
141
+ margin-top: var(--str-video__spacing-md);
142
+ font-size: var(--str-video__font-size-xs);
143
+ line-height: 1.3;
144
+ text-align: center;
145
+ font-weight: 500;
146
+ min-height: 1.3em;
147
+
148
+ &[data-visible='false'] {
149
+ visibility: hidden;
150
+ }
151
+ }
152
+ }
@@ -0,0 +1,86 @@
1
+ .str-video__embedded-livestream-duration {
2
+ &__live-badge,
3
+ &__backstage-badge {
4
+ color: var(--str-video__text-color1);
5
+ }
6
+
7
+ &__live-badge {
8
+ background-color: var(--str-video__primary-color);
9
+ }
10
+
11
+ &__backstage-badge {
12
+ background-color: var(--str-video__base-color6);
13
+ }
14
+
15
+ &__eye-icon {
16
+ background-color: var(--str-video__text-color1);
17
+ opacity: 0.8;
18
+ }
19
+
20
+ &__count {
21
+ color: var(--str-video__text-color1);
22
+ opacity: 0.8;
23
+ }
24
+
25
+ &__elapsed {
26
+ color: var(--str-video__text-color1);
27
+ opacity: 0.8;
28
+ }
29
+ }
30
+
31
+ .str-video__embedded-go-live-button {
32
+ background: var(--str-video__button-primary-active);
33
+ color: var(--str-video__text-color1);
34
+
35
+ &:hover {
36
+ background: var(--str-video__button-primary-hover);
37
+ }
38
+ }
39
+
40
+ .str-video__embedded-end-stream-button {
41
+ background: var(--str-video__button-default-base);
42
+ color: var(--str-video__text-color1);
43
+
44
+ &:hover {
45
+ background: var(--str-video__button-default-hover);
46
+ }
47
+
48
+ .str-video__icon {
49
+ color: var(--str-video__alert-warning);
50
+ }
51
+ }
52
+
53
+ .str-video__embedded-host-lobby {
54
+ background: var(--str-video__base-color4);
55
+ }
56
+
57
+ .str-video__embedded-viewer-lobby {
58
+ background: var(--str-video__base-color4);
59
+ color: var(--str-video__text-color2);
60
+
61
+ &__icon {
62
+ opacity: 0.6;
63
+ }
64
+
65
+ &__title {
66
+ color: var(--str-video__text-color1);
67
+ }
68
+
69
+ &__starts-at {
70
+ opacity: 0.7;
71
+ }
72
+
73
+ &__participant-count {
74
+ opacity: 0.6;
75
+ }
76
+
77
+ &__auto-join {
78
+ input[type='checkbox'] {
79
+ accent-color: var(--str-video__button-primary-active);
80
+ }
81
+ }
82
+
83
+ &__join-error {
84
+ color: var(--str-video__alert-warning);
85
+ }
86
+ }
@@ -0,0 +1,2 @@
1
+ @use 'Livestream-layout';
2
+ @use 'Livestream-theme';
@@ -0,0 +1,26 @@
1
+ .str-video__embedded-blur-toggle-container {
2
+ padding: var(--str-video__spacing-xl) var(--str-video__spacing-xl);
3
+ }
4
+
5
+ .str-video__embedded-blur-toggle {
6
+ display: flex;
7
+ align-items: center;
8
+ gap: var(--str-video__spacing-sm);
9
+ width: 100%;
10
+ padding: var(--str-video__spacing-sm);
11
+ border: none;
12
+ border-radius: var(--str-video__border-radius-circle);
13
+ font-size: 0.875rem;
14
+ cursor: pointer;
15
+ transition: background-color 0.15s ease;
16
+
17
+ &:disabled {
18
+ opacity: 0.6;
19
+ cursor: default;
20
+ }
21
+
22
+ .str-video__icon {
23
+ width: 1.25rem;
24
+ height: 1.25rem;
25
+ }
26
+ }
@@ -0,0 +1,21 @@
1
+ .str-video__embedded-blur-toggle-container {
2
+ border-top: 1px solid var(--str-video__base-color3);
3
+ }
4
+
5
+ .str-video__embedded-blur-toggle {
6
+ background: transparent;
7
+ color: var(--str-video__text-color1);
8
+
9
+ &:hover:not(:disabled) {
10
+ background: var(--str-video__button-default-hover);
11
+ }
12
+
13
+ &--active {
14
+ background: var(--str-video__secondary-color);
15
+ color: var(--str-video__primary-color);
16
+
17
+ &:hover:not(:disabled) {
18
+ background: var(--str-video__secondary-color);
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,2 @@
1
+ @use 'BlurToggleButton-layout';
2
+ @use 'BlurToggleButton-theme';
@@ -0,0 +1,79 @@
1
+ .str-video__embedded-call-duration {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--str-video__spacing-xxs);
5
+ white-space: nowrap;
6
+
7
+ &__icon {
8
+ width: 16px;
9
+ height: 16px;
10
+ }
11
+
12
+ &__time {
13
+ font-size: 0.875rem;
14
+ font-weight: 500;
15
+ font-variant-numeric: tabular-nums;
16
+ }
17
+ }
18
+
19
+ .str-video__embedded-mobile {
20
+ display: contents;
21
+ }
22
+
23
+ .str-video__embedded-desktop {
24
+ display: none;
25
+ }
26
+
27
+ .str-video__embedded-call-controls.str-video__call-controls {
28
+ justify-content: center;
29
+ padding: var(--str-video__spacing-md);
30
+ gap: var(--str-video__spacing-xxs);
31
+
32
+ .str-video__call-controls--group {
33
+ flex: 1;
34
+ display: flex;
35
+ align-items: center;
36
+ gap: var(--str-video__spacing-xxs);
37
+ }
38
+
39
+ .str-video__call-controls--options {
40
+ justify-content: flex-start;
41
+ }
42
+
43
+ .str-video__call-controls--media {
44
+ justify-content: center;
45
+ }
46
+
47
+ .str-video__call-controls--sidebar {
48
+ justify-content: flex-end;
49
+ }
50
+ }
51
+
52
+ @container (min-width: 700px) {
53
+ .str-video__embedded-mobile {
54
+ display: none;
55
+ }
56
+
57
+ .str-video__embedded-desktop {
58
+ display: contents;
59
+ }
60
+
61
+ .str-video__embedded-call-controls.str-video__call-controls {
62
+ justify-content: space-between;
63
+ padding: var(--str-video__spacing-lg);
64
+ gap: var(--str-video__spacing-sm);
65
+
66
+ .str-video__call-controls--group {
67
+ flex: 1;
68
+ gap: var(--str-video__spacing-sm);
69
+ }
70
+
71
+ .str-video__call-controls--media {
72
+ justify-content: center;
73
+ }
74
+
75
+ .str-video__call-controls--sidebar {
76
+ justify-content: flex-end;
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,14 @@
1
+ .str-video__embedded-call-duration {
2
+ color: var(--str-video__text-color2);
3
+
4
+ &__icon {
5
+ background-color: var(--str-video__alert-success);
6
+ }
7
+ }
8
+
9
+ @container (min-width: 700px) {
10
+ .str-video__embedded-call-controls.str-video__call-controls {
11
+ background-color: var(--str-video__base-color7);
12
+ border-radius: var(--str-video__border-radius-xxl);
13
+ }
14
+ }
@@ -0,0 +1,2 @@
1
+ @use 'CallControls-layout';
2
+ @use 'CallControls-theme';
@@ -0,0 +1,15 @@
1
+ .str-video__embedded-connection-notification {
2
+ position: absolute;
3
+ top: var(--str-video__spacing-md);
4
+ left: 50%;
5
+ transform: translateX(-50%);
6
+ z-index: 10;
7
+ display: flex;
8
+ justify-content: center;
9
+
10
+ .str-video__notification {
11
+ position: relative !important;
12
+ top: auto !important;
13
+ left: auto !important;
14
+ }
15
+ }
@@ -0,0 +1 @@
1
+ @use 'ConnectionNotification-layout';
@@ -0,0 +1,11 @@
1
+ .str-video__embedded-participant-view-ui {
2
+ position: absolute;
3
+ inset: 0;
4
+ padding-top: var(--str-video__spacing-md);
5
+ padding-left: var(--str-video__spacing-md);
6
+
7
+ &--screen-share {
8
+ padding-top: 0;
9
+ padding-left: 0;
10
+ }
11
+ }
@@ -0,0 +1 @@
1
+ @use 'EmbeddedParticipantViewUI';
@@ -0,0 +1,16 @@
1
+ .str-video__embedded-error {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ height: 100%;
6
+ width: 100%;
7
+ padding: 1rem;
8
+ text-align: center;
9
+
10
+ &__message {
11
+ margin: 0;
12
+ font-size: 0.875rem;
13
+ color: var(--str-video__text-color2);
14
+ opacity: 0.7;
15
+ }
16
+ }
@@ -0,0 +1 @@
1
+ @use 'ErrorScreen-layout';