Skip to content

Commit 0db2d9a

Browse files
authored
Introduce dark mode to publisher (#10)
1 parent 0ed9403 commit 0db2d9a

File tree

2 files changed

+31
-20
lines changed

2 files changed

+31
-20
lines changed

lib/live_ex_webrtc/core_components.ex

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ defmodule LiveExWebRTC.CoreComponents do
5151
data-cancel={JS.exec(@on_cancel, "phx-remove")}
5252
class="relative z-50 hidden"
5353
>
54-
<div id={"#{@id}-bg"} class="bg-zinc-50/90 fixed inset-0 transition-opacity" aria-hidden="true" />
54+
<div
55+
id={"#{@id}-bg"}
56+
class="bg-zinc-50/90 dark:bg-black/90 fixed inset-0 transition-opacity"
57+
aria-hidden="true"
58+
/>
5559
<div
5660
class="fixed inset-0 overflow-y-auto"
5761
aria-labelledby={"#{@id}-title"}
@@ -67,7 +71,7 @@ defmodule LiveExWebRTC.CoreComponents do
6771
phx-window-keydown={JS.exec("data-cancel", to: "##{@id}")}
6872
phx-key="escape"
6973
phx-click-away={JS.exec("data-cancel", to: "##{@id}")}
70-
class="shadow-zinc-700/10 ring-zinc-700/10 relative hidden rounded-2xl bg-white p-14 shadow-lg ring-1 transition"
74+
class="shadow-zinc-700/10 ring-zinc-700/10 relative hidden rounded-2xl bg-white p-14 shadow-lg ring-1 transition dark:bg-stone-900"
7175
>
7276
<div class="absolute top-6 right-5">
7377
<button

lib/live_ex_webrtc/publisher.ex

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -294,11 +294,11 @@ defmodule LiveExWebRTC.Publisher do
294294
phx-update="ignore"
295295
>
296296
<label for="lex-audio-devices" class="absolute left-3 top-[5px] pointer-events-none">
297-
<.icon name="hero-microphone" class="w-4 h-4" />
297+
<.icon name="hero-microphone" class="w-4 h-4 dark:text-indigo-400" />
298298
</label>
299299
<select
300300
id="lex-audio-devices"
301-
class="pl-9 w-full rounded-lg text-sm border-indigo-200 disabled:text-gray-400 disabled:border-gray-400 focus:border-indigo-900 focus:outline-none focus:ring-0"
301+
class="pl-9 w-full rounded-lg text-sm border-indigo-200 disabled:text-gray-400 disabled:border-gray-400 focus:border-indigo-900 focus:outline-none focus:ring-0 dark:bg-transparent dark:text-indigo-400 dark:border-indigo-400"
302302
>
303303
</select>
304304
</div>
@@ -308,22 +308,27 @@ defmodule LiveExWebRTC.Publisher do
308308
phx-update="ignore"
309309
>
310310
<label for="lex-video-devices" class="absolute left-3 top-[5px] pointer-events-none">
311-
<.icon name="hero-video-camera" class="w-4 h-4" />
311+
<.icon name="hero-video-camera" class="w-4 h-4 dark:text-indigo-400" />
312312
</label>
313313
<select
314314
id="lex-video-devices"
315-
class="pl-9 w-full rounded-lg text-sm border-indigo-200 disabled:text-gray-400 disabled:border-gray-400 focus:border-indigo-900 focus:outline-none focus:ring-0"
315+
class="pl-9 w-full rounded-lg text-sm border-indigo-200 disabled:text-gray-400 disabled:border-gray-400 focus:border-indigo-900 focus:outline-none focus:ring-0 dark:bg-transparent dark:text-indigo-400 dark:border-indigo-400"
316316
>
317317
</select>
318318
</div>
319319
</div>
320320
</div>
321-
<div class="flex-1 rounded-lg border border-indigo-200" id="lex-stats">
322-
<div class="px-8 py-4 border-b border-indigo-200">
321+
<div
322+
class={
323+
"flex-1 rounded-lg border border-indigo-200 dark:border-zinc-800 #{if @publisher.streaming?, do: "dark:text-neutral-200", else: "dark:text-neutral-600"}"
324+
}
325+
id="lex-stats"
326+
>
327+
<div class="px-8 py-4 border-b border-indigo-200 dark:border-zinc-800">
323328
<h1 class="font-medium">Statistics</h1>
324329
</div>
325330
<div class="p-4 text-sm">
326-
<div class="divide-y divide-indigo-200 flex flex-col items-stretch *:p-4">
331+
<div class="divide-y divide-indigo-200 dark:divide-zinc-800 flex flex-col items-stretch *:p-4">
327332
<div class="flex justify-between items-center">
328333
<label for="lex-audio-bitrate">Audio bitrate (kbps):</label>
329334
<p id="lex-audio-bitrate">0</p>
@@ -355,10 +360,10 @@ defmodule LiveExWebRTC.Publisher do
355360
<div class="flex flex-col gap-2">
356361
<div class="flex items-stretch gap-4">
357362
<button
358-
class="border border-indigo-700 px-4 py-2 rounded-lg text-indigo-800 flex items-center justify-center gap-2"
363+
class="border border-indigo-800 px-4 py-2 rounded-lg text-indigo-800 flex items-center justify-center gap-2 dark:border-indigo-400"
359364
phx-click={show_modal("settings-modal")}
360365
>
361-
<.icon name="hero-cog-6-tooth" class="w-4 h-4" />
366+
<.icon name="hero-cog-6-tooth" class="w-4 h-4 dark:text-indigo-400" />
362367
</button>
363368
<button
364369
:if={!@publisher.streaming?}
@@ -389,14 +394,16 @@ defmodule LiveExWebRTC.Publisher do
389394
<div class="w-11 h-6 bg-gray-300 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-indigo-500 rounded-full peer peer-checked:after:translate-x-5 peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:left-0.5 after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-indigo-500 peer-disabled:opacity-50">
390395
</div>
391396
</label>
392-
<label for="lex-record-stream" class="text-xs text-nowrap">Record stream</label>
397+
<label for="lex-record-stream" class="text-xs text-nowrap dark:text-indigo-400">
398+
Record stream
399+
</label>
393400
</form>
394401
</div>
395402
</div>
396403
<.modal id="settings-modal">
397404
<div class="flex items-stretch justify-between text-sm">
398405
<div class="text-[#606060] flex flex-col gap-4">
399-
<div class="font-bold text-[#0d0d0d]">Audio Settings</div>
406+
<div class="font-bold text-[#0d0d0d] dark:text-stone-200">Audio Settings</div>
400407
<div class="flex flex-col gap-4">
401408
<div class="flex gap-2.5 items-center">
402409
<label for="lex-echo-cancellation">Echo Cancellation</label>
@@ -413,15 +420,15 @@ defmodule LiveExWebRTC.Publisher do
413420
</div>
414421
</div>
415422
<div class="transition-all duration-700 text-[#606060] flex flex-col gap-2">
416-
<div class="font-bold text-[#0d0d0d]">Video Settings</div>
423+
<div class="font-bold text-[#0d0d0d] dark:text-stone-200">Video Settings</div>
417424
<div id="lex-video-static" phx-update="ignore" class="flex flex-col gap-2 items-end">
418425
<div class="flex items-center gap-2">
419426
<label for="lex-width">Width</label>
420427
<input
421428
type="text"
422429
id="lex-width"
423430
value="1280"
424-
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0"
431+
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0 dark:bg-zinc-800 dark:border-none dark:text-indigo-400"
425432
/>
426433
</div>
427434
<div class="flex items-center gap-2">
@@ -430,7 +437,7 @@ defmodule LiveExWebRTC.Publisher do
430437
type="text"
431438
id="lex-height"
432439
value="720"
433-
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0"
440+
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0 dark:bg-zinc-800 dark:border-none dark:text-indigo-400"
434441
/>
435442
</div>
436443
<div class="flex items-center gap-2">
@@ -439,7 +446,7 @@ defmodule LiveExWebRTC.Publisher do
439446
type="text"
440447
id="lex-fps"
441448
value="30"
442-
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0"
449+
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0 dark:bg-zinc-800 dark:border-none dark:text-indigo-400"
443450
/>
444451
</div>
445452
</div>
@@ -454,17 +461,17 @@ defmodule LiveExWebRTC.Publisher do
454461
</button>
455462
<div class="flex text-sm gap-4">
456463
<div class="flex items-center gap-2">
457-
<label for="lex-bitrate">Max Bitrate (kbps)</label>
464+
<label for="lex-bitrate" class="dark:text-stone-200">Max Bitrate (kbps)</label>
458465
<input
459466
type="text"
460467
id="lex-bitrate"
461468
value="1500"
462-
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0"
469+
class="rounded-lg disabled:text-gray-400 disabled:border-gray-400 focus:border-brand focus:outline-none focus:ring-0 dark:bg-zinc-800 dark:border-none dark:text-indigo-400"
463470
/>
464471
</div>
465472
<%= if @publisher.simulcast_supported? do %>
466473
<div class="flex gap-2.5 items-center text-sm">
467-
<label for="lex-simulcast">Simulcast</label>
474+
<label for="lex-simulcast" class="dark:text-stone-200">Simulcast</label>
468475
<input type="checkbox" id="lex-simulcast" class="rounded-full" />
469476
</div>
470477
<% else %>

0 commit comments

Comments
 (0)