diff --git a/README.md b/README.md index fdbd34c..4b7bc6b 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,14 @@ feature discussions. - [X] avatar uploads - [X] chat topics - [X] chat messages + - [ ] membership and presence + - [ ] add memberships to topics + - [ ] join to get notifications + - [ ] join for additional permissions + - [ ] filters for allowing joining a topic based on criteria on the user? + - [ ] display topic members somehwere + - [ ] emit presence events on join/leave + - [ ] display user presence - [ ] chat message actions - [X] '...' button to show actions - [ ] delete message diff --git a/public/base.css b/public/base.css index 7ee132f..6c3d111 100644 --- a/public/base.css +++ b/public/base.css @@ -614,6 +614,44 @@ body[data-perms*="files.write.own"] [data-requires-permission="files.write.own"] top: 2px; } +/* ICON - CAMERA */ +.icon.camera { + box-sizing: border-box; + position: relative; + display: block; + transform: scale(var(--icon-scale, 1)); + border: 2px solid; + border-radius: 3px; + width: 18px; + height: 12px; + perspective: 24px; +} +.icon.camera::after, +.icon.camera::before { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; +} +.icon.camera::before { + border: 2px solid; + border-left-color: transparent; + transform: rotateY(-70deg); + width: 8px; + height: 8px; + right: -7px; + top: 0; +} +.icon.camera::after { + width: 10px; + height: 5px; + border-top: 2px solid; + border-right: 2px solid; + top: -5px; + right: 2px; + border-top-right-radius: 2px; +} + /* ICON - CHAT */ .icon.chat { box-sizing: border-box; @@ -911,6 +949,38 @@ body[data-perms*="files.write.own"] [data-requires-permission="files.write.own"] bottom: 0; } +/* ICON - LIVE */ +.icon.live { + transform: scale(var(--icon-scale, 1)); +} +.icon.live, +.icon.live::after, +.icon.live::before { + box-sizing: border-box; + position: relative; + display: block; + width: 14px; + height: 14px; + border: 2px solid; + border-bottom-color: transparent; + border-radius: 50%; +} +.icon.live::after, +.icon.live::before { + content: ""; + position: absolute; + width: 6px; + height: 6px; + top: 2px; + left: 2px; +} +.icon.live::after { + width: 22px; + height: 22px; + top: -6px; + left: -6px; +} + /* ICON - MORE */ .icon.more { box-sizing: border-box; @@ -993,6 +1063,49 @@ body[data-perms*="files.write.own"] [data-requires-permission="files.write.own"] 5px 0 0; } +/* ICON - PHONE */ +.icon.phone { + box-sizing: border-box; + position: relative; + display: block; + width: 22px; + height: 22px; + transform: scale(var(--icon-scale, 1)); +} +.icon.phone::after, +.icon.phone::before { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; +} +.icon.phone::after { + width: 18px; + height: 18px; + border-top-left-radius: 1px; + border-bottom-right-radius: 1px; + border-bottom-left-radius: 12px; + border-left: 4px solid; + border-bottom: 4px solid; + left: 2px; + bottom: 2px; + background: + linear-gradient(to left, currentColor 10px, transparent 0) no-repeat right 11px/6px 4px, + linear-gradient(to left, currentColor 10px, transparent 0) no-repeat -1px 0/4px 6px; +} +.icon.phone::before { + width: 20px; + height: 20px; + border: 6px double; + border-top-color: transparent; + border-bottom-color: transparent; + border-left-color: transparent; + border-radius: 50%; + transform: rotate(-45deg); + bottom: 2px; + left: 2px; +} + /* ICON - PLUS */ .icon.plus, .icon.plus::after, diff --git a/public/tabs/live/live.html b/public/tabs/live/live.html new file mode 100644 index 0000000..25e12b8 --- /dev/null +++ b/public/tabs/live/live.html @@ -0,0 +1,73 @@ + + +
+ + +
+
+
+ +
+ + + + + +
+
+
+
diff --git a/public/tabs/tabs.html b/public/tabs/tabs.html index 1b8d186..73f7e18 100644 --- a/public/tabs/tabs.html +++ b/public/tabs/tabs.html @@ -122,9 +122,9 @@
+ -