-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Randomized carousel slots #500
Comments
Suggested randomized slots from FF (#hsmusic-chat): Official (group) only:
Official (group) and homepage:
Fandom (group):
Beyond (group):
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Brought up by Jebb (#hsmusic-chat) and this particular idea pitched and detailed by FF (#hsmusic-chat).
Related to #501, but this is a distinct idea.
Our thoughts are to periodically (i.e. once a week), and maybe globally (i.e. everyone shares the same timestamp-based random seed), dynamically replace certain slots in a group's carousel with a randomly picked album from a manual selection for that slot. Essentially, randomized carousel slots are a list of albums, a periodically random one of which will always be shown in that slot's position. All the albums should (or could) represent the same "idea", and any of the albums may be shown to that effect. This lets there be more variety and diversity in the carousels while still keeping a coherent theme/layout. (A period is used, rather than randomizing on every load, to avoid needlessly frequent distractions, and to give a chance to come back and explore a new selection later.)
Implementation notes:
Probably just let the item in the carousel album list be an object, as below:
This can be expanded to support e.g.
Rotating From
or similar, in the future.Normalize the format with a
parseCarouselEntries
function or similar.{select: 'static', album: albumRef}
{select: 'random', albums: [...albumRefs]}
{select: 'rotate', albums: [...albumRefs]}
(for example)We can't do dynamics like this on the server, it has to be handled by client JS. The
mutatePageContent
step exists for this purpose. Blocking render introduced with scoped chronology links should help, but it's not a badly jarring consequence on other pages, because we're just slotting out a different album in the same place—no layout change.Make sure this is fine without JS. Top-level for all carousel items should each be represented by a container, rather than
<a>
, and contain multiple<a>
when randomization is applicable; all except the first should bestyle: 'display: none'
. Use a class or data tag to indicate the slot (container) should be randomized.We should support this behavior on homepage carousels, too. Make sure the implementation is not specific to groups.
The text was updated successfully, but these errors were encountered: