From 673f8b41ab012713673b4d2a3948e87297775a11 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Tue, 12 Feb 2019 22:08:57 -0500 Subject: [PATCH] Improve display of blank albums * Add dark and light blank album image variants * Use CALayer to draw rounded corners and a tinted border on each album cover --- .../blankAlbum.imageset/Contents.json | 25 +++++++++++++++++- .../blankAlbum.imageset/blankAlbumDark.pdf | Bin 0 -> 4125 bytes .../{blankAlbum.pdf => blankAlbumLight-1.pdf} | Bin 4127 -> 4127 bytes Persephone/Resources/AlbumItem.xib | 2 ++ Persephone/Views/AlbumItem.swift | 8 ++++++ Resources/export/blankAlbumDark.pdf | Bin 0 -> 4125 bytes Resources/export/blankAlbumDark.png | Bin 0 -> 982 bytes Resources/export/blankAlbumDark@2x.png | Bin 0 -> 2396 bytes Resources/export/blankAlbumLight.pdf | Bin 0 -> 4127 bytes Resources/export/blankAlbumLight.png | Bin 0 -> 976 bytes Resources/export/blankAlbumLight@2x.png | Bin 0 -> 2455 bytes Resources/icons.sketch | Bin 9327 -> 8882 bytes 12 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumDark.pdf rename Persephone/Assets.xcassets/blankAlbum.imageset/{blankAlbum.pdf => blankAlbumLight-1.pdf} (87%) create mode 100644 Resources/export/blankAlbumDark.pdf create mode 100644 Resources/export/blankAlbumDark.png create mode 100644 Resources/export/blankAlbumDark@2x.png create mode 100644 Resources/export/blankAlbumLight.pdf create mode 100644 Resources/export/blankAlbumLight.png create mode 100644 Resources/export/blankAlbumLight@2x.png diff --git a/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json b/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json index f6c870a..120c648 100644 --- a/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json +++ b/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json @@ -1,12 +1,35 @@ { "images" : [ + { + "idiom" : "universal" + }, { "idiom" : "universal", - "filename" : "blankAlbum.pdf" + "filename" : "blankAlbumLight-1.pdf", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ] + }, + { + "idiom" : "universal", + "filename" : "blankAlbumDark.pdf", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ] } ], "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "original", + "preserves-vector-representation" : true } } \ No newline at end of file diff --git a/Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumDark.pdf b/Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumDark.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5b66161a7ae6ce9f99520586ad81ec497a62fcc2 GIT binary patch literal 4125 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 delta 465 zcmbQQFkfLpO#P}`8&xfz?_03E)*-`FG5W^4{|gtZlx^Zxb(wa2lS%SRH~Esq9+@jj zV%Jume&xDGaQl6%g4LMFjdj;TyiLj>N!b6rI_Mx_0iS_6Gh~c7IPQN^%Ken9}8A( z%x1pzIqIR%U(?wf(ih}SHk*ehD|y?@FyDOKrSIdKQ&I(cGTWv0D|ZKKKU(Yj?;NAL z^!;mV)PJpe@k!{Pbe5p<$Xqijjq(QL?e2xk+lOiG`7Q snz?C;frYt=9hVJ3B?_?$c6MCFC5c5P6-B9OT*l^x23)GDuKsRZ03cGw&Hw-a diff --git a/Persephone/Resources/AlbumItem.xib b/Persephone/Resources/AlbumItem.xib index 8920df3..8791f09 100644 --- a/Persephone/Resources/AlbumItem.xib +++ b/Persephone/Resources/AlbumItem.xib @@ -9,7 +9,9 @@ + + diff --git a/Persephone/Views/AlbumItem.swift b/Persephone/Views/AlbumItem.swift index 3b651d8..eadd9de 100644 --- a/Persephone/Views/AlbumItem.swift +++ b/Persephone/Views/AlbumItem.swift @@ -9,9 +9,16 @@ import Cocoa class AlbumItem: NSCollectionViewItem { + let albumCoverBorderColor = NSColor.init(calibratedWhite: 1, alpha: 0.1) + override func viewDidLoad() { super.viewDidLoad() // Do view setup here. + + albumCoverView.wantsLayer = true + albumCoverView.layer?.cornerRadius = 3 + albumCoverView.layer?.borderWidth = 1 + albumCoverView.layer?.borderColor = albumCoverBorderColor.cgColor } func setAlbum(_ album: MPDClient.Album) { @@ -19,6 +26,7 @@ class AlbumItem: NSCollectionViewItem { albumArtist.stringValue = album.artist } + @IBOutlet var albumCoverView: NSImageView! @IBOutlet var albumTitle: NSTextField! @IBOutlet var albumArtist: NSTextField! } diff --git a/Resources/export/blankAlbumDark.pdf b/Resources/export/blankAlbumDark.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5b66161a7ae6ce9f99520586ad81ec497a62fcc2 GIT binary patch literal 4125 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 literal 0 HcmV?d00001 diff --git a/Resources/export/blankAlbumDark@2x.png b/Resources/export/blankAlbumDark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a40a732847f8f587979ff5c1bcc024d59b19cda0 GIT binary patch literal 2396 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&2?&#~tz_78O`%fY(0|Te9 zr;B4q1>@UWr}HM?6l)D+FI>*e>+nIK^8a_n!t6r!iHmzfyq6wolb>WEQ+s%BRME`) z^OE15Q7QBD^Y=ermdC=O!n#g1nA^AEKsh7p0|fyNZjFWypIp@!Fw9|ON@Qdeh}-vq zMWn&lK|yB$!=cmSa~qfn*f?5PMI0)AE)ou4ILFYqp@E4*KfZ*C>wu(!fLH*-!>8ST z4vZGeEQgr56!z3y;2JckYe(OM|K1O7ZOz`z&M)`o z-MziLch~;@_U`rd^}D~nzyCgNZ`Ib{UtV5bX7E}H$iIJgclmp-^&4Lvt-7$3YtEc` z^XA3AGT!l{mGjQd;`HxNPENjicD8x_j%PP--hB7-^Yh);*T?_=@c&=!@%8IIzPY*i z?rih?e}Db!W`uvVsr~gOX8q&#?p=?)SpIMosJ_|%f643J-xlisE8RMI^5naR+xhp` zhufEY)xBQv<;6w)^@T6G>tDaN`10#ceGMaPLCt6Ts$*Z1|L=SM=l|XtznJVwqV2!Q zzn1Ekx3~LZbmzY~r$)p63`zTH&DZ7sbhk%u&wHD9XUE3x3&Gsd-q+W^@3-CZRcdtx zUu^Q}><=>@b7(X?wwV7r^4j~m(fRFi)i3_lUXOh*`eygvbEb9AH~yY?x^}w$0tUVN zKb+o=em_ww)U$gcVMDfRu=j^)WC6io<2+$uQ&pz9q{57Y(_R9Cwx4Xsl`Rr0&o5t;{ zsZ_jv<5LyC-NgTe2xZFize@f+pZEUW-rq0pGp@;AvtRVb&9`rFZ@>S4#fuBcdXJ>q z*S-DsnEOrr>hC|+A2!Yth^Sw%c^|`d_uAKUf7R!`KK}OW-1@(Q7uN54z3zC;pC5(q zO|Joi$6gg^Ry-@vx&Lcrqt|~tpZ)#*YS9nV8^T}zKYo6n-K*&Lo7Ugo9IpB2#`laot&I-;4vb&Q^b8vX0~nkW z6)pe^%e`~GeG*ti4g^SWd|?rB$bT**EWyZXAi~CE%gB1+_Rb?LZVsbbM}uiJNsym& a9@I0k^0_iwq__f`OAMZ_elF{r5}E)Q4vJR* literal 0 HcmV?d00001 diff --git a/Resources/export/blankAlbumLight.pdf b/Resources/export/blankAlbumLight.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a79b29186f5f26fdceb63e2a1552c5398192879d GIT binary patch literal 4127 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 UbZKli1f~pyfF&h$(R$$j0J25~4*&oF literal 0 HcmV?d00001 diff --git a/Resources/export/blankAlbumLight.png b/Resources/export/blankAlbumLight.png new file mode 100644 index 0000000000000000000000000000000000000000..e5a4f9f8591282a1edd88ba84a075812cd39a8e8 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEa{HEjtmSN`?>!lvNA9*w|lxc zhEy=Vo#vaZ6e!{nZ*s9!NpVK+|Ns4(KQ?kYDl2)KJmk#1b%tlAtE0y2FUPj!o{kP} zzkP2_*y{d6g0mgeuUQ`R=VWlO-~bx_khA4>Ix~Yq1=GWCHyIcN<~i)BHDh3CQ5VRY z&pXtm_wRN4fBf-A9kK3BH*>tU-`4H#?|=I6;lo3(%699Xe!6MTzJ1dk7DT8`_T0I9 zxApzc_EOJh_xi8flBTR%KovDAP0v%mKG>(8LSd&KVBmF&`(f{RbY;C7*-@e^Qg6GuVzkiQD z|9aM6s=nsnheKDH5^fw_-%~TSzaif9(ieBe16wSv-e6eZbt#0M!KXX8mzQCcif<{y fs4&@K@|Tm` zYb8pYHT}UMGtQ#&14LRXt56cSYa3%&vdv16RcL9a45(tErMm)c>3M&~e&|onlRU}u zaJoK(Ob0{R8bRpHp;n)ez>eQyrvyp6b*kJt6TiBqdG?+ zS18=CieThC-*>!p^7~A*Bo_tG>YdFHbf#oe=1K}Rx>0I}U%OL0xmv{I%6!ZYxflH^3u|! zrrE9uF`nETVKk8pPsAW77bz)UXmvlj;pOL8afsjq1M}Veo3@z0Ek%E7v)MuqzA5(h zXBVgo%VK$(id?OgHjshjrpH|2r!Z}*@FuC+>oV#cGVx zBP(8_+{U&`65um4^NXIqj1dcwn(ftkv1XgxY~jsO_y##wv5*+Amw-m=hEls6zs5{h zy>@GAT^`TVZ23y3-rt@%1wq%PVMl`+8{59+u{7A#jsee(;qrReWYB@TB~1GOjiqP{ zr6f&a?Ns6`+8{t3J(k@NIlh{wb;lyJPOJ4);L98JJTvjwM!AU~9scW=D1rXGYoZOb zI4-qT8&9_OpL<+pY9FPTK|wfMf5%TWwqgPt`@9vKWD+gdC8gtPHnyHh`RM?uGAoH- zG1FPO`gb(BcLhP552l&+Mf&s26P6ME+$9D;Hmu30Z1(JS;jg$`Y>gg?Uteo89Z3G1+%4K>x7Fq(}#=xyo`> m&tfy(Agw{#2T$28Bs1zR9BBHMMrPPg3)H+WmyMrm{`h}|3!3-< literal 0 HcmV?d00001 diff --git a/Resources/icons.sketch b/Resources/icons.sketch index af3a97b08e1fcf671754f33ba0b7157cbd8a894a..3d2e322f730f396817373908110632f7e16f0106 100644 GIT binary patch literal 8882 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