UNPKG

5.06 kBCSSView Raw
1/*
2 * What you're currently looking at is the source code of a legally protected, proprietary software.
3 * CKEditor 5 Collaboration is licensed under a commercial license and protected by copyright law. Where not otherwise indicated,
4 * all CKEditor 5 Collaboration content is authored by CKSource engineers and consists of CKSource-owned intellectual property.
5 *
6 * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8 */
9
10@import '@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css';
11
12:root {
13 --ck-color-presence-list-dropdown-background: hsl(0, 0%, 100%);
14 --ck-color-presence-list-dropdown-arrow-border: hsl(0, 0%, 92%);
15
16 --ck-presence-list-dropdown-list-max-width: 250px;
17 --ck-presence-list-dropdown-list-min-width: 180px;
18
19 --ck-presence-list-users-tooltip-max-width: 120px;
20 --ck-presence-list-users-tooltip-min-width: 25px;
21}
22
23.ck.ck-presence-list {
24 display: flex;
25 align-items: center;
26 margin-right: var(--ck-spacing-standard);
27 transition: margin-right 200ms ease-in-out;
28 font-size: var(--ck-font-size-base);
29
30 & * {
31 box-sizing: border-box;
32 }
33}
34
35.ck.ck-presence-list__list {
36 display: flex;
37
38 /* Taking care about margin animation in collapsed mode. */
39 justify-content: flex-end;
40}
41
42.ck.ck-presence-list__counter {
43 color: var(--ck-color-base-text);
44 margin-right: var(--ck-spacing-large);
45}
46
47.ck.ck-presence-list__counter--hidden {
48 display: none;
49}
50
51.ck.ck-presence-list__list-item {
52 /**
53 * Reset default CK5 button styles - `.ck-reset__all *`.
54 * Reset default user agent button stylesheet too.
55 */
56 font: inherit;
57 color: inherit;
58 border: 0;
59 padding: 0;
60 outline: none;
61 background: none;
62
63 position: relative;
64 margin-left: var(--ck-spacing-standard);
65
66 &:last-child {
67 order: -1;
68 margin-left: 0;
69 }
70}
71
72.ck.ck-tooltip.ck-presence-list__list-item__tooltip {
73 & > .ck-tooltip__text {
74 display: inline-block;
75 max-width: var(--ck-presence-list-users-tooltip-max-width);
76 overflow: hidden;
77 text-align: center;
78 text-overflow: ellipsis;
79 white-space: nowrap;
80 }
81}
82
83.ck.ck-presence-list__marker {
84 position: relative;
85 display: block;
86 width: 100%;
87 height: 3px;
88 margin-top: 3px;
89}
90
91/**
92 * Add better UX behavior of button to the `clickable` elements.
93 * We need to create stronger specificity than `.ck.ck-reset__all *`.
94 */
95.ck-presence-list__list button.ck-presence-list__list-item *,
96.ck-presence-list__balloon button.ck-presence-list__dropdown-list-item * {
97 cursor: pointer;
98}
99
100.ck.ck-presence-list--collapsed {
101 & .ck-presence-list__list {
102 /* Because of moving avatars to the right with margin-left we need to set min-width of container. */
103 min-width: calc( var(--ck-user-avatar-size) * 2 );
104
105 & * {
106 cursor: pointer;
107 transition: all 400ms ease-in-out;
108 }
109 }
110
111 & .ck.ck-presence-list__list-item {
112 /* Adding extra px to create collapsed effect. */
113 margin-left: calc( var(--ck-user-avatar-size) * -1 + 7px);
114
115 &:last-child {
116 order: unset;
117 }
118
119 &:nth-last-child(2) {
120 opacity: .75;
121 }
122
123 &:nth-last-child(3) {
124 opacity: .55;
125 }
126
127 &:nth-last-child(4) {
128 opacity: .35;
129 }
130
131 &:nth-last-child(5) {
132 opacity: .15;
133 }
134
135 &:nth-last-child(n+6) {
136 display: none;
137 }
138 }
139}
140
141.ck.ck-presence-list__balloon {
142 /* Overwrite arrows background of balloon */
143 --ck-color-panel-border: var(--ck-color-presence-list-dropdown-arrow-border);
144 --ck-color-panel-background: var(--ck-color-presence-list-dropdown-background);
145
146 background-color: var(--ck-color-presence-list-dropdown-background);
147 border: 0;
148 opacity: 1;
149 animation: 300ms fadeIn ease-in-out;
150
151 @media (prefers-reduced-motion: reduce) {
152 animation: none;
153 }
154
155 & .ck.ck-presence-list__dropdown-list-wrapper {
156 /* Temporary fix, we should rethink max-height of dropdown. */
157 max-height: 80vh;
158
159 min-width: var(--ck-presence-list-dropdown-list-min-width);
160 max-width: var(--ck-presence-list-dropdown-list-max-width);
161 overflow-y: auto;
162 overflow-x: hidden;
163 border-radius: var(--ck-border-radius);
164 }
165
166 & .ck.ck-presence-list__dropdown-list-item {
167 /**
168 * Reset default CK5 button styles - `.ck-reset__all *`.
169 * Reset default user agent button stylesheet too.
170 */
171 font: inherit;
172 color: inherit;
173 outline: none;
174 border: 0;
175 background: none;
176
177 display: flex;
178 align-items: center;
179 position: relative;
180 padding: var(--ck-spacing-standard);
181
182 &:first-of-type {
183 & .ck-presence-list__marker {
184 border-top-left-radius: var(--ck-border-radius);
185 }
186 }
187
188 &:last-of-type {
189 & .ck-presence-list__marker {
190 border-bottom-left-radius: var(--ck-border-radius);
191 }
192 }
193 }
194
195 & .ck.ck-presence-list__dropdown-list {
196 & .ck-user__full-name {
197 white-space: nowrap;
198 overflow: hidden;
199 text-overflow: ellipsis;
200 color: var(--ck-color-base-text);
201 margin-left: var(--ck-spacing-standard);
202 }
203
204 & .ck.ck-presence-list__marker {
205 position: absolute;
206 left: 0;
207 margin: 0;
208 height: 100%;
209 width: 3px;
210 }
211 }
212}
213
214@keyframes fadeIn {
215 from {
216 opacity: 0;
217 }
218
219 to {
220 opacity: 1;
221 }
222}