Expanded Player Tweaks and Icons
This commit is contained in:
1 parent
f988beb583
commit
597b11d6cc
8 files changed
+106
-100
No files matched your search
@@ -0,0 +1,3 @@
|
||||
<svg width="23" height="30" viewBox="0 0 23 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.92233 29.6592C1.37016 29.6592 0.549467 28.8385 0.549467 27.2685V2.96901C0.549467 1.41684 1.37016 0.596152 2.92233 0.596152H6.99008C8.54226 0.596152 9.36294 1.34548 9.36294 2.96901V27.2685C9.36294 28.8385 8.54226 29.6592 6.99008 29.6592H2.92233ZM15.8928 29.6592C14.3228 29.6592 13.5021 28.8385 13.5021 27.2685V2.96901C13.5021 1.41684 14.3228 0.596152 15.8928 0.596152H19.9427C21.5127 0.596152 22.3155 1.34548 22.3155 2.96901V27.2685C22.3155 28.8385 21.5127 29.6592 19.9427 29.6592H15.8928Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 620 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="33" height="20" viewBox="0 0 33 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.8279 19.2643C14.3458 19.2643 13.946 19.1115 13.4757 18.8292L1.49338 11.7739C0.658497 11.2801 0.305731 10.7039 0.305731 10.0219C0.305731 9.3516 0.658497 8.77541 1.49338 8.28154L13.4757 1.22622C13.9578 0.944004 14.3458 0.791138 14.8279 0.791138C15.7451 0.791138 16.5212 1.49667 16.5212 2.80191V9.57502C16.6506 9.08114 17.0033 8.65782 17.6501 8.28154L29.6324 1.22622C30.1145 0.944004 30.5025 0.791138 30.9846 0.791138C31.9018 0.791138 32.6779 1.49667 32.6779 2.80191V17.2536C32.6779 18.5588 31.9018 19.2643 30.9846 19.2643C30.5025 19.2643 30.1027 19.1115 29.6324 18.8292L17.6501 11.7739C17.0151 11.3976 16.6506 10.9743 16.5212 10.4804V17.2536C16.5212 18.5588 15.7451 19.2643 14.8279 19.2643Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 821 B |
@@ -0,0 +1,6 @@
|
||||
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.262 34.3273L21.1818 26.7156C22.0034 25.8118 23.4362 25.8491 24.2096 26.7944L30.4051 34.3668C30.9393 35.0197 30.4748 36 29.6312 36H15.002C14.1338 36 13.6781 34.9697 14.262 34.3273Z" fill="white" fill-opacity="0.4"/>
|
||||
<path d="M25.9946 26.593C26.3392 26.898 26.872 26.8686 27.1215 26.482C27.5563 25.808 27.8404 25.0442 27.9496 24.2428C28.0965 23.165 27.9205 22.0678 27.4439 21.09C26.9672 20.1122 26.2113 19.2977 25.2717 18.7495C24.3322 18.2013 23.2511 17.944 22.1654 18.0102C21.0796 18.0764 20.0378 18.4631 19.1718 19.1213C18.3058 19.7796 17.6544 20.6799 17.3 21.7083C16.9457 22.7368 16.9042 23.8472 17.181 24.8992C17.3867 25.6814 17.7615 26.4051 18.275 27.0212C18.5696 27.3747 19.102 27.3392 19.407 26.9946C19.7119 26.65 19.6706 26.1274 19.3999 25.7553C19.1211 25.372 18.9143 24.9383 18.7925 24.4753C18.5996 23.742 18.6285 22.968 18.8755 22.2512C19.1225 21.5343 19.5765 20.9068 20.1801 20.4479C20.7838 19.9891 21.5099 19.7196 22.2667 19.6735C23.0236 19.6273 23.7771 19.8067 24.432 20.1888C25.0869 20.5709 25.6138 21.1386 25.946 21.8202C26.2782 22.5017 26.4009 23.2665 26.2985 24.0178C26.2339 24.4922 26.0813 24.9477 25.8511 25.3621C25.6276 25.7643 25.65 26.2881 25.9946 26.593Z" fill="white" fill-opacity="0.4"/>
|
||||
<path d="M31.2195 31.2175C31.5734 31.5307 32.1168 31.4994 32.4051 31.1249C33.7327 29.4003 34.5902 27.3545 34.8855 25.1882C35.2194 22.7386 34.8194 20.2449 33.736 18.0227C32.6527 15.8004 30.9348 13.9493 28.7994 12.7033C26.664 11.4574 24.2071 10.8727 21.7394 11.0232C19.2718 11.1736 16.9041 12.0524 14.9359 13.5484C12.9676 15.0445 11.4872 17.0906 10.6819 19.428C9.87648 21.7654 9.78232 24.2891 10.4113 26.6801C10.9675 28.7945 12.0671 30.721 13.5944 32.2716C13.9261 32.6083 14.4693 32.5734 14.7825 32.2195C15.0957 31.8656 15.06 31.327 14.732 30.9867C13.4563 29.6631 12.5365 28.0316 12.0665 26.2446C11.5236 24.1811 11.6049 22.0029 12.3 19.9855C12.9951 17.9681 14.2728 16.2022 15.9715 14.911C17.6703 13.6198 19.7138 12.8613 21.8436 12.7315C23.9734 12.6017 26.0939 13.1063 27.9369 14.1816C29.7799 15.2569 31.2626 16.8546 32.1976 18.7726C33.1326 20.6906 33.4778 22.8428 33.1897 24.957C32.9401 26.7878 32.2253 28.519 31.1199 29.9877C30.8356 30.3653 30.8656 30.9043 31.2195 31.2175Z" fill="white" fill-opacity="0.4"/>
|
||||
<path d="M28.8328 29.1051C29.2641 29.4869 29.9286 29.4496 30.2609 28.979C31.1374 27.7373 31.7063 26.299 31.913 24.783C32.1667 22.9213 31.8627 21.0262 31.0394 19.3372C30.2161 17.6483 28.9104 16.2414 27.2875 15.2945C25.6646 14.3477 23.7974 13.9033 21.922 14.0176C20.0465 14.1319 18.2471 14.7998 16.7513 15.9368C15.2554 17.0738 14.1303 18.6288 13.5182 20.4053C12.9061 22.1817 12.8346 24.0997 13.3126 25.9168C13.7018 27.3965 14.4412 28.7551 15.4621 29.8811C15.849 30.3078 16.5132 30.2641 16.8949 29.8328C17.2767 29.4014 17.2298 28.7464 16.8563 28.3079C16.1376 27.4642 15.6142 26.4665 15.33 25.3862C14.9569 23.9681 15.0128 22.4712 15.4905 21.0848C15.9681 19.6985 16.8462 18.4849 18.0136 17.5976C19.181 16.7102 20.5853 16.189 22.0489 16.0998C23.5125 16.0106 24.9697 16.3574 26.2363 17.0963C27.5028 17.8353 28.5218 18.9332 29.1643 20.2513C29.8068 21.5694 30.0441 23.0484 29.846 24.5013C29.6952 25.6082 29.2968 26.662 28.6859 27.5868C28.3684 28.0674 28.4014 28.7233 28.8328 29.1051Z" fill="white" fill-opacity="0.4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="33" height="20" viewBox="0 0 33 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.69179 19.2643C0.774598 19.2643 -0.0014878 18.5588 -0.0014878 17.2536V2.80191C-0.0014878 1.49667 0.774598 0.79114 1.69179 0.79114C2.1739 0.79114 2.56195 0.944005 3.04406 1.22622L15.0263 8.28154C15.6731 8.65782 16.0259 9.08114 16.1552 9.57502V2.80191C16.1552 1.49667 16.9313 0.79114 17.8485 0.79114C18.3306 0.79114 18.7304 0.944005 19.2007 1.22622L31.1948 8.28154C32.0179 8.77541 32.3824 9.3516 32.3824 10.0219C32.3824 10.7039 32.0179 11.2801 31.1948 11.7739L19.2007 18.8292C18.7304 19.1115 18.3306 19.2643 17.8485 19.2643C16.9313 19.2643 16.1552 18.5588 16.1552 17.2536V10.4804C16.0259 10.9743 15.6731 11.3976 15.0263 11.7739L3.04406 18.8292C2.57371 19.1115 2.1739 19.2643 1.69179 19.2643Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 820 B |
@@ -0,0 +1,7 @@
|
||||
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.01">
|
||||
<path d="M15 14.3913C15 13.6229 15.6229 13 16.3913 13H19.8696C20.638 13 21.2609 13.6229 21.2609 14.3913V33.1739C21.2609 33.9423 20.638 34.5652 19.8696 34.5652H16.3913C15.6229 34.5652 15 33.9423 15 33.1739V14.3913Z" fill="white"/>
|
||||
<path d="M24.7391 14.3913C24.7391 13.6229 25.362 13 26.1304 13H29.6087C30.3771 13 31 13.6229 31 14.3913V33.1739C31 33.9423 30.3771 34.5652 29.6087 34.5652H26.1304C25.362 34.5652 24.7391 33.9423 24.7391 33.1739V14.3913Z" fill="white"/>
|
||||
</g>
|
||||
<path d="M13 11.5037V36.4149C13 38.3242 15.0539 39.5288 16.7204 38.5968L37.8885 26.757C39.9208 25.6202 39.9395 22.7021 37.9219 21.5394L16.7482 9.33765C15.0816 8.3772 13 9.58012 13 11.5037Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 797 B |
@@ -14,6 +14,7 @@ from typing import List
|
||||
import threading
|
||||
|
||||
from fabric.utils import bulk_connect, invoke_repeater, cooldown
|
||||
from fabric.utils.helpers import get_relative_path
|
||||
from fabric.widgets.image import Image
|
||||
from fabric.widgets.overlay import Overlay
|
||||
from fabric.widgets.stack import Stack
|
||||
@@ -207,27 +208,11 @@ class PlayerBoxStack(Box):
|
||||
fallback_cover_path = f"{data.HOME_DIR}/.current.wall"
|
||||
|
||||
# Album cover with fallback image using Image widget
|
||||
album_cover_image = Image(
|
||||
name="macos-album-cover-image",
|
||||
pixbuf=None,
|
||||
)
|
||||
|
||||
try:
|
||||
from gi.repository import GdkPixbuf
|
||||
|
||||
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(
|
||||
fallback_cover_path, 70, 70, True
|
||||
)
|
||||
album_cover_image.set_from_pixbuf(pixbuf)
|
||||
album_cover_image.set_size_request(70, 70)
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to load fallback image in no-media box: {e}")
|
||||
|
||||
album_cover = Box(
|
||||
name="macos-album-image",
|
||||
children=[album_cover_image],
|
||||
)
|
||||
album_cover.set_size_request(70, 70)
|
||||
album_cover.set_style(f"background-image:url('{fallback_cover_path}')")
|
||||
|
||||
image_stack = Box(h_align="start", v_align="center", name="player-image-stack")
|
||||
image_stack.children = [album_cover]
|
||||
@@ -501,7 +486,6 @@ class PlayerBox(Box):
|
||||
self.player_stack = player_stack
|
||||
self.fallback_cover_path = f"{data.HOME_DIR}/.current.wall"
|
||||
|
||||
self.image_size = 70 # Medium album art size for expanded player
|
||||
self.icon_size = 15
|
||||
|
||||
# State
|
||||
@@ -515,10 +499,14 @@ class PlayerBox(Box):
|
||||
self._download_cancelled = False # Flag to cancel downloads
|
||||
self._signal_connections = [] # Track signal connections
|
||||
|
||||
self.album_cover = Box(style_classes="macos-album-image")
|
||||
# Use same CSS background approach as small player for consistency
|
||||
self.album_cover = Box(
|
||||
name="macos-album-image",
|
||||
)
|
||||
self.album_cover.set_style(
|
||||
f"background-image:url('{self.fallback_cover_path}')"
|
||||
)
|
||||
self.album_cover.set_size_request(70, 70)
|
||||
|
||||
self.image_stack = Box(
|
||||
h_align="start", v_align="center", name="player-image-stack"
|
||||
@@ -556,39 +544,6 @@ class PlayerBox(Box):
|
||||
visible=True, # Hide artist and album when no media
|
||||
)
|
||||
|
||||
# Use Image widget instead of CSS background for more reliable image display
|
||||
self.album_cover_image = Image(
|
||||
name="macos-album-cover-image",
|
||||
pixbuf=None,
|
||||
)
|
||||
|
||||
# Set fallback image immediately with proper scaling
|
||||
try:
|
||||
from gi.repository import GdkPixbuf
|
||||
|
||||
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(
|
||||
self.fallback_cover_path, 70, 70, True
|
||||
)
|
||||
self.album_cover_image.set_from_pixbuf(pixbuf)
|
||||
self.album_cover_image.set_size_request(70, 70)
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to load fallback image: {e}")
|
||||
|
||||
# Container box for styling with fixed size
|
||||
self.album_cover = Box(
|
||||
name="macos-album-image",
|
||||
children=[self.album_cover_image],
|
||||
)
|
||||
self.album_cover.set_size_request(70, 70)
|
||||
|
||||
self.image_stack = Box(
|
||||
h_align="start",
|
||||
v_align="start",
|
||||
h_expand=False, # Fixed width for album art
|
||||
name="macos-player-image-stack",
|
||||
)
|
||||
self.image_stack.children = [*self.image_stack.children, self.album_cover]
|
||||
|
||||
self.app_icon = Box(
|
||||
children=Image(
|
||||
icon_name=self.player.player_name, name="player-app-icon", icon_size=20
|
||||
@@ -732,10 +687,20 @@ class PlayerBox(Box):
|
||||
)
|
||||
self.stack_buttons_box.hide() # Initially hidden
|
||||
|
||||
self.skip_next_icon = Image(icon_name="player_fwd")
|
||||
self.skip_prev_icon = Image(icon_name="player_rew")
|
||||
self.shuffle_icon = Image(icon_name="shuffle")
|
||||
self.play_pause_icon = Image(icon_name="player_pause")
|
||||
# Create SVG icons from player directory
|
||||
self.skip_next_icon = Image(
|
||||
image_file=get_relative_path("../../config/assets/icons/player/fwd.svg"),
|
||||
icon_size=16,
|
||||
)
|
||||
self.skip_prev_icon = Image(
|
||||
image_file=get_relative_path("../../config/assets/icons/player/Rewind.svg"),
|
||||
icon_size=16,
|
||||
)
|
||||
self.shuffle_icon = Image(icon_name="shuffle") # Keep existing shuffle icon
|
||||
self.play_pause_icon = Image(
|
||||
image_file=get_relative_path("../../config/assets/icons/player/Pause.svg"),
|
||||
icon_size=20,
|
||||
)
|
||||
|
||||
self.play_pause_button = Button(
|
||||
name="macos-play-button",
|
||||
@@ -959,39 +924,22 @@ class PlayerBox(Box):
|
||||
status = player.get_property("playback-status")
|
||||
|
||||
if status == "paused":
|
||||
self.play_pause_icon.set_from_icon_name("player_start")
|
||||
self.play_pause_icon.set_from_file(
|
||||
get_relative_path("../../config/assets/icons/player/play.svg")
|
||||
)
|
||||
|
||||
if status == "playing":
|
||||
self.play_pause_icon.set_from_icon_name("player_pause")
|
||||
self.play_pause_icon.set_from_file(
|
||||
get_relative_path("../../config/assets/icons/player/Pause.svg")
|
||||
)
|
||||
|
||||
def _update_image(self, image_path):
|
||||
try:
|
||||
from gi.repository import GdkPixbuf
|
||||
|
||||
if image_path and os.path.isfile(image_path):
|
||||
# Create scaled pixbuf to ensure proper size
|
||||
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(
|
||||
image_path, 70, 70, True
|
||||
)
|
||||
self.album_cover_image.set_from_pixbuf(pixbuf)
|
||||
# Explicitly clear pixbuf reference to help GC
|
||||
del pixbuf
|
||||
else:
|
||||
# Use fallback image with scaling
|
||||
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(
|
||||
self.fallback_cover_path, 70, 70, True
|
||||
)
|
||||
self.album_cover_image.set_from_pixbuf(pixbuf)
|
||||
# Explicitly clear pixbuf reference to help GC
|
||||
del pixbuf
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to update album cover image: {e}")
|
||||
# Try simple file setting as last resort
|
||||
try:
|
||||
self.album_cover_image.set_from_file(self.fallback_cover_path)
|
||||
self.album_cover_image.set_size_request(70, 70)
|
||||
except Exception as e2:
|
||||
logger.error(f"Failed to set fallback image: {e2}")
|
||||
if image_path and os.path.isfile(image_path):
|
||||
self.album_cover.set_style(f"background-image:url('{image_path}')")
|
||||
else:
|
||||
self.album_cover.set_style(
|
||||
f"background-image:url('{self.fallback_cover_path}')"
|
||||
)
|
||||
|
||||
def _set_image(self, *_):
|
||||
art_url = self.player.arturl
|
||||
@@ -1022,6 +970,7 @@ class PlayerBox(Box):
|
||||
)
|
||||
self.current_download_thread.start()
|
||||
else:
|
||||
print(art_url)
|
||||
self._update_image(art_url)
|
||||
|
||||
def _download_and_set_artwork(self, arturl):
|
||||
|
||||
@@ -9,6 +9,7 @@ import threading
|
||||
from fabric.utils import (
|
||||
bulk_connect,
|
||||
)
|
||||
from fabric.utils.helpers import get_relative_path
|
||||
from fabric.widgets.box import Box
|
||||
from fabric.widgets.button import Button
|
||||
from fabric.widgets.image import Image
|
||||
@@ -558,25 +559,36 @@ class PlayerBox(Box):
|
||||
],
|
||||
)
|
||||
|
||||
# Buttons
|
||||
# Buttons with fixed sizing for layout stability
|
||||
self.button_box = Box(
|
||||
name="button-box-c",
|
||||
# h_align="end",
|
||||
# visible=False,
|
||||
h_expand=False,
|
||||
spacing=2,
|
||||
)
|
||||
|
||||
self.skip_next_icon = Image(icon_name="player_fwd")
|
||||
self.skip_prev_icon = Image(icon_name="media-skip-backward")
|
||||
self.shuffle_icon = Image(icon_name="shuffle")
|
||||
self.play_pause_icon = Image(icon_name="player_pause")
|
||||
# Create SVG icons with consistent sizing
|
||||
self.skip_next_icon = Image(
|
||||
image_file=get_relative_path("../../config/assets/icons/player/fwd.svg"),
|
||||
icon_size=16
|
||||
)
|
||||
self.skip_prev_icon = Image(
|
||||
image_file=get_relative_path("../../config/assets/icons/player/Rewind.svg"),
|
||||
icon_size=16
|
||||
)
|
||||
self.shuffle_icon = Image(icon_name="shuffle", icon_size=16)
|
||||
self.play_pause_icon = Image(
|
||||
image_file=get_relative_path("../../config/assets/icons/player/Pause.svg"),
|
||||
icon_size=18
|
||||
)
|
||||
|
||||
# Fixed size buttons to prevent layout shifts
|
||||
self.play_pause_button = Button(
|
||||
name="player-button",
|
||||
child=self.play_pause_icon,
|
||||
on_clicked=self.player.play_pause,
|
||||
)
|
||||
# Set consistent button size
|
||||
self.play_pause_button.set_size_request(32, 32)
|
||||
|
||||
self.player.bind_property("can_pause", self.play_pause_button, "sensitive")
|
||||
|
||||
@@ -585,6 +597,8 @@ class PlayerBox(Box):
|
||||
child=self.skip_next_icon,
|
||||
on_clicked=self._on_player_next,
|
||||
)
|
||||
# Set consistent button size
|
||||
self.next_button.set_size_request(32, 32)
|
||||
self.player.bind_property("can_go_next", self.next_button, "sensitive")
|
||||
|
||||
self.prev_button = Button(
|
||||
@@ -592,11 +606,16 @@ class PlayerBox(Box):
|
||||
child=self.skip_prev_icon,
|
||||
on_clicked=self._on_prev_button_click,
|
||||
)
|
||||
# Set consistent button size
|
||||
self.prev_button.set_size_request(32, 32)
|
||||
|
||||
self.shuffle_button = Button(
|
||||
style_classes=["player-button"],
|
||||
child=self.shuffle_icon,
|
||||
on_clicked=self.player.toggle_shuffle,
|
||||
)
|
||||
# Set consistent button size
|
||||
self.shuffle_button.set_size_request(32, 32)
|
||||
self.player.bind_property("can_shuffle", self.shuffle_button, "sensitive")
|
||||
|
||||
self.button_box.children = (
|
||||
@@ -767,10 +786,14 @@ class PlayerBox(Box):
|
||||
status = player.get_property("playback-status")
|
||||
|
||||
if status == "paused":
|
||||
self.play_pause_icon.set_from_icon_name("player_play")
|
||||
self.play_pause_icon.set_from_file(
|
||||
get_relative_path("../../config/assets/icons/player/play.svg")
|
||||
)
|
||||
|
||||
if status == "playing":
|
||||
self.play_pause_icon.set_from_icon_name("player_pause")
|
||||
self.play_pause_icon.set_from_file(
|
||||
get_relative_path("../../config/assets/icons/player/Pause.svg")
|
||||
)
|
||||
# Notify the player stack that this player started playing
|
||||
if self.player_stack and hasattr(
|
||||
self.player_stack, "on_player_playback_changed"
|
||||
@@ -781,10 +804,14 @@ class PlayerBox(Box):
|
||||
status = player.get_property("playback-status")
|
||||
|
||||
if status == "paused":
|
||||
self.play_pause_icon.set_from_icon_name("player_play")
|
||||
self.play_pause_icon.set_from_file(
|
||||
get_relative_path("../../config/assets/icons/player/play.svg")
|
||||
)
|
||||
|
||||
if status == "playing":
|
||||
self.play_pause_icon.set_from_icon_name("player_pause")
|
||||
self.play_pause_icon.set_from_file(
|
||||
get_relative_path("../../config/assets/icons/player/Pause.svg")
|
||||
)
|
||||
# Notify the player stack that this player started playing
|
||||
if self.player_stack and hasattr(
|
||||
self.player_stack, "on_player_playback_changed"
|
||||
|
||||
@@ -557,11 +557,11 @@
|
||||
|
||||
/* macOS-style expanded player - more compact */
|
||||
#macos-outer-player-box {
|
||||
min-height: 110px; /* Reduced height */
|
||||
min-width: 420px; /* Slightly wider to accommodate expanded track info */
|
||||
min-height: 80px; /* Reduced height */
|
||||
min-width: 380px; /* Slightly wider to accommodate expanded track info */
|
||||
border-radius: 12px;
|
||||
/* margin: 10px; */
|
||||
padding: 15px; /* Reduced padding */
|
||||
padding: 15px;
|
||||
background-color: alpha(#000, 0.4);
|
||||
box-shadow:
|
||||
0 4px 16px alpha(#000, 0.25),
|
||||
@@ -572,17 +572,25 @@
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#macos-album-cover-image image {
|
||||
min-width: 70px;
|
||||
min-height: 70px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
#macos-album-image {
|
||||
min-width: 70px;
|
||||
min-height: 70px;
|
||||
border-radius: 9px;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
box-shadow: 0 2px 8px alpha(#000, 0.3);
|
||||
}
|
||||
|
||||
#macos-album-cover-image {
|
||||
#macos-album-image image {
|
||||
min-width: 70px;
|
||||
min-height: 70px;
|
||||
border-radius: 9px;
|
||||
box-shadow: 0 2px 8px alpha(#000, 0.3);
|
||||
}
|
||||
|
||||
/* Track info container that expands to fill available space */
|
||||
|
||||
Reference in new issue
Block a user