diff --git a/src/ui/component/channelThumbnail/gerbil.png b/src/ui/component/channelThumbnail/gerbil.png new file mode 100644 index 000000000..c19e658d2 Binary files /dev/null and b/src/ui/component/channelThumbnail/gerbil.png differ diff --git a/src/ui/component/channelThumbnail/view.jsx b/src/ui/component/channelThumbnail/view.jsx index 054f1021e..a22c24613 100644 --- a/src/ui/component/channelThumbnail/view.jsx +++ b/src/ui/component/channelThumbnail/view.jsx @@ -1,15 +1,44 @@ // @flow import React from 'react'; +import { parseURI } from 'lbry-redux'; +import classnames from 'classnames'; +import Gerbil from './gerbil.png'; type Props = { thumbnail: ?string, + uri: string, }; function ChannelThumbnail(props: Props) { - const { thumbnail } = props; + const { thumbnail, uri } = props; + + function getColorClass() { + // Generate a random color class based on the first letter of the channel name + const { channelName } = parseURI(uri); + const initializer = channelName.charCodeAt(0) - 65; // will be between 0 and 57 + + let thumbnailColorClass = `channel-thumbnail__default--`; + + switch (true) { + case initializer < 15: + return (thumbnailColorClass += '1'); + case initializer < 30: + return (thumbnailColorClass += '2'); + case initializer < 45: + return (thumbnailColorClass += '3'); + default: + return (thumbnailColorClass += '4'); + } + } + return ( -
- {thumbnail && } +
+ {!thumbnail && } + {thumbnail && }
); } diff --git a/src/ui/scss/component/_channel.scss b/src/ui/scss/component/_channel.scss index 3552b21c1..20b57902a 100644 --- a/src/ui/scss/component/_channel.scss +++ b/src/ui/scss/component/_channel.scss @@ -14,7 +14,7 @@ $metadata-z-index: 1; align-self: flex-start; position: absolute; object-fit: cover; - filter: brightness(40%); + filter: brightness(60%); } .channel__cover, @@ -23,27 +23,48 @@ $metadata-z-index: 1; width: 100%; } -.channel__thumbnail { +.channel-thumbnail { position: absolute; + display: flex; left: var(--spacing-main-padding); height: var(--channel-thumbnail-size); width: var(--channel-thumbnail-size); - background-color: $lbry-gray-3; - background-image: linear-gradient(to right, $lbry-white, $lbry-gray-3 80%); background-size: cover; box-shadow: 0px 8px 40px -3px $lbry-black; } -.channel__thumbnail--custom { +.channel-thumbnail__custom { width: 100%; object-fit: cover; } -.channel__thumbnail, -.channel__thumbnail--custom { +.channel-thumbnail__default { + width: 80%; + height: 80%; + margin-left: auto; + margin-right: auto; + align-self: flex-end; + margin-bottom: -1px; +} + +.channel-thumbnail, +.channel-thumbnail__custom { border-radius: var(--card-radius); } +.channel-thumbnail__default--1 { + background-color: $lbry-indigo-3; +} +.channel-thumbnail__default--2 { + background-color: $lbry-orange-2; +} +.channel-thumbnail__default--3 { + background-color: $lbry-blue-3; +} +.channel-thumbnail__default--4 { + background-color: $lbry-red-1; +} + .channel__primary-info { // Ensure the profile pic/title sit ontop of the default cover background z-index: $metadata-z-index; @@ -63,9 +84,5 @@ $metadata-z-index: 1; font-size: 1.2rem; user-select: all; margin-top: -0.25rem; + color: rgba($lbry-white, 0.75); } - -// .channel__description { -// font-size: 1.3rem; -// margin: var(--spacing-vertical-large) 0; -// }