Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Compact four-column Community Applications layout for Unraid 7.3

Featured Replies

The recent Community Applications layout uses very large cards, which limits a desktop-width Apps page to three applications across and adds some visually strong hover and status styling.

I put together the following CSS for the Custom WebUI CSS plugin. It provides four compact columns, contained descriptions, much smaller Spotlight branding, neutral status labels, a restrained hover state, and a translucent Recent-date navigator.

Tested on Unraid 7.3.1 using the standard light and Black themes. As this targets Community Applications class names, a future CA update may require adjustments.

Global CSS

/* Community Applications: compact four-column card layout */
.ca_templatesDisplay {
    align-items: stretch !important;
}
.ca_holder.ca_appTemplate {
    position: relative !important;
    width: calc(25% - 14px) !important;
    min-width: 245px !important;
    max-width: none !important;
    height: 250px !important;
    min-height: 250px !important;
    margin: 7px !important;
    padding: 12px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 72px !important;
    grid-template-rows: 72px minmax(0, 1fr) 30px !important;
    grid-template-areas:
        "app spotlight"
        "description description"
        "buttons buttons" !important;
    column-gap: 10px !important;
    row-gap: 8px !important;
}
/* App icon, name and repository */
.ca_holder > .ca_appPopup.ca_backgroundClickable {
    grid-area: app !important;
    position: static !important;
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: 10px !important;
    align-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.ca_holder .ca_iconArea {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    position: static !important;
    width: 58px !important;
    height: 58px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.ca_holder .ca_iconArea img,
.ca_holder .ca_iconArea .displayIcon {
    position: static !important;
    width: 52px !important;
    height: 52px !important;
    max-width: 52px !important;
    max-height: 52px !important;
    object-fit: contain !important;
    font-size: 48px !important;
}
.ca_holder .ca_applicationName {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: static !important;
    align-self: end !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 0 2px 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    font-size: 16px !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
}
.ca_holder .ca_author {
    grid-column: 2 !important;
    grid-row: 2 !important;
    position: static !important;
    align-self: start !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    opacity: 0.7 !important;
}
/* Monthly Spotlight graphic */
.ca_holder > .homespotlightIconArea {
    grid-area: spotlight !important;
    position: static !important;
    width: 72px !important;
    height: 56px !important;
    margin: 5px 0 0 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}
.ca_holder .homespotlightIconArea > div:first-child {
    width: 64px !important;
    height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}
.ca_holder svg.spotlightIcon {
    display: block !important;
    width: 64px !important;
    height: 22px !important;
    max-width: 64px !important;
    max-height: 22px !important;
}
.ca_holder .spotlightDate {
    margin: 3px 0 0 0 !important;
    padding: 0 !important;
    font-size: 9px !important;
    line-height: 11px !important;
}
/* Give Spotlight extra clearance only when a status pill is present */
.ca_holder > .cardFlagStack ~ .homespotlightIconArea {
    margin-top: 18px !important;
}
/* Description */
.ca_holder > .cardDescription {
    grid-area: description !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.ca_holder .cardDesc {
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 5 !important;
    overflow: hidden !important;
}
/* Details, Install and status icons */
.ca_holder > .ca_bottomLine {
    grid-area: buttons !important;
    position: static !important;
    width: auto !important;
    height: 30px !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
}
.ca_holder .caButton {
    position: static !important;
    margin: 0 !important;
    padding: 4px 9px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
}
.ca_holder .ca_bottomLine > span {
    position: static !important;
}
.ca_holder .ca_bottomLine > span:last-child {
    margin-left: auto !important;
}
/* Subtle status pills: official, installed, etc. */
.ca_holder > .cardFlagStack {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    z-index: 3 !important;
}
.cardFlagStack > div {
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid rgba(60, 60, 60, 0.35) !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}
.cardFlagStack .installedCardText {
    min-width: 0 !important;
    height: auto !important;
    padding: 4px 7px !important;
    background: transparent !important;
    color: #333 !important;
    text-shadow: none !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0.4px !important;
}
.LTOfficialCardBackground,
.officialCardBackground,
.installedCardBackground {
    background: #fff !important;
    border-color: rgba(60, 60, 60, 0.35) !important;
}
.installedCardBackground {
    border-style: solid !important;
    border-width: 1px !important;
}
/* Keep card hover extremely subtle */
.ca_holder.ca_appTemplate,
.ca_holder.ca_appTemplate:hover,
.ca_holder.ca_appTemplate:focus,
.ca_holder.ca_appTemplate:focus-within {
    transform: none !important;
    filter: none !important;
    outline: none !important;
    box-shadow: none !important;
    transition: none !important;
}
.ca_holder.ca_appTemplate:hover {
    background-color: rgba(0, 0, 0, 0.015) !important;
    border-color: rgba(120, 120, 120, 0.16) !important;
}
.ca_holder:hover .ca_backgroundClickable,
.ca_holder:hover .ca_bottomLine,
.ca_holder:hover .ca_bottomLineSpotLight {
    filter: none !important;
    box-shadow: none !important;
}
/* Recent page date navigation */
#caAlphaBar {
    right: 10px !important;
    padding: 8px 7px !important;
    background: rgba(255, 255, 255, 0.82) !important;
    border: 1px solid rgba(80, 80, 80, 0.16) !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08) !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
}
#caAlphaBar .caAlphaLetter {
    min-width: 34px !important;
    padding: 2px 5px !important;
    color: rgba(35, 35, 35, 0.76) !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    text-align: center !important;
    border-radius: 4px !important;
}
#caAlphaBar .caAlphaYear {
    color: rgba(25, 25, 25, 0.92) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}
#caAlphaBar .caAlphaLetter:hover {
    background: rgba(0, 0, 0, 0.05) !important;
}
#caAlphaBar .caAlphaActive {
    background: rgba(245, 110, 35, 0.10) !important;
    color: #d95f20 !important;
}
/* Responsive fallbacks */
@media (max-width: 1250px) {
    .ca_holder.ca_appTemplate {
        width: calc(33.333% - 14px) !important;
    }
}
@media (max-width: 900px) {
    .ca_holder.ca_appTemplate {
        width: calc(50% - 14px) !important;
    }
}
@media (max-width: 620px) {
    .ca_holder.ca_appTemplate {
        width: calc(100% - 14px) !important;
        min-width: 0 !important;
    }
}

Additional CSS for black theme:

/* Status pills for Black Theme */
.cardFlagStack > div,
.LTOfficialCardBackground,
.officialCardBackground,
.installedCardBackground {
    background: #f4f4f4 !important;
    border-color: rgba(255, 255, 255, 0.35) !important;
}
.cardFlagStack .installedCardText {
    color: #222 !important;
}
/* Recent page date navigation: Black Theme */
#caAlphaBar {
    background: rgba(32, 32, 32, 0.84) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28) !important;
}
#caAlphaBar .caAlphaLetter {
    color: rgba(255, 255, 255, 0.72) !important;
}
#caAlphaBar .caAlphaYear {
    color: rgba(255, 255, 255, 0.92) !important;
}
#caAlphaBar .caAlphaLetter:hover {
    background: rgba(255, 255, 255, 0.07) !important;
}
#caAlphaBar .caAlphaActive {
    background: rgba(245, 110, 35, 0.18) !important;
    color: #ff8b4f !important;
}

Screenshot 2026-07-14 at 09.25.23.jpg

Screenshot 2026-07-14 at 09.25.49.jpg

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.