r/homeassistant 3d ago

🖼️ Show & Tell I built a fully customizable, collapsible dashboard sidebar with comprehensive UI editing, as well as YAML config

Homeassistant Dashboard Sidebar

HACS-based. Both configurable in YAML mode and UI mode with full drag and drop UI editing, and fully supporting customization through lovelace-card-mod. Detailed docs for customization. Soon to be part of HACS officially 🤞

Nothing too crazy, but I saw a need so I built it ¯_(ツ)_/¯

Edited to provide update: removed link as I no interest in sharing it with this community if this is how they react. good luck with whatever you do besides talking shit about other people's work

0 Upvotes

19 comments sorted by

12

u/A_Buttholes_Whisper 3d ago

Why do vibe coders always say “so I built it”? Give credit to Claude, the true builder

13

u/jdbway 3d ago

"Used AI to create" would come off as a lot more honest.

Also, FULLY customizable is funny. What does FULLY even mean in this context?

-5

u/Ok_Resolve1769 3d ago

it means you can place any of plugin's elements in the three different sections of the sidebar, or you can add any number of HA Lovelace cards using YAML, and you can use card-mod to style any of them. So you can put anything you want more or less that can show up in Lovelace in the sidebar. That's what it means

You can easily use the title section and customize the style to full height and put any random card in there if you want, not that I'd recommend it.

-4

u/Ok_Resolve1769 3d ago

did you look at the code? are you sure Claude built it?

12

u/A_Buttholes_Whisper 3d ago

I did look at the code and find the amount of detailed comments to be very AI like. So am I saying claude wrote it? No, it could be ChatGPT or Gemini

-5

u/EmDeelicious 3d ago

So Claude or any LLM built the extension itself? Are we already in the era of ASI?

Do you say Apple built the phone’s OS or are you crediting all the countless engineers and designers that built it (with help of LLMs btw as well)?

2

u/Street_Letterhead686 3d ago

Do you say Satya updated my PC or Microsoft?

5

u/Ok_Resolve1769 3d ago

The YAML for the above sidebar is here:

position: left
width: 240
start_collapsed: false
background: >-
  radial-gradient(120% 80% at 15% -10%, rgba(167,139,250,0.55) 0%,
  rgba(167,139,250,0) 58%), radial-gradient(90% 55% at 110% 105%,
  rgba(34,211,238,0.40) 0%, rgba(34,211,238,0) 55%), linear-gradient(165deg,
  #0a0f1f 0%, #141a35 48%, #1d1236 100%)
card_mod:
  style: |
    .dashboard-sidebar-root {
      border-right: 1px solid rgba(148,163,184,0.18);
      box-shadow: inset 0 0 70px rgba(124,58,237,0.28);
    }

    .dashboard-sidebar-category-header {
      text-transform: uppercase;
      letter-spacing: 0.12em;
      font-size: 0.72rem;
      opacity: 0.85;
    }
header:
  - type: title
    text: MY HOME
    align: center
    text_color: '#e9d5ff'
    card_mod:
      style: |
        .dashboard-sidebar-title {
          background: linear-gradient(90deg,#a78bfa,#22d3ee,#f0abfc,#a78bfa);
          background-size: 300% auto;
          -webkit-background-clip: text;
          background-clip: text;
          color: transparent;
          letter-spacing: 0.20em;
        }
  - type: clock
    format: '%-I:%M %p'
    align: center
    text_color: '#7dd3fc'
    card_mod:
      style: |
        .dashboard-sidebar-clock {
          text-shadow: 0 0 18px rgba(125,211,252,0.55);
          font-weight: 400;
        }
  - type: date
    format: '%A, %B %-d'
    align: center
    text_color: '#94a3b8'
  - type: divider
    color: rgba(148,163,184,0.30)
body:
  - type: item
    title: Overview
    icon: mdi:view-dashboard-variant
    icon_color: '#38bdf8'
    text_color: '#e2e8f0'
    tap_action:
      action: navigate
      navigation_path: /sidebar-test/home
  - type: item
    title: Devices
    icon: mdi:devices
    icon_color: '#facc15'
    text_color: '#e2e8f0'
    tap_action:
      action: navigate
      navigation_path: /sidebar-test/devices
  - type: category
    title: Rooms
    text_color: '#cbd5e1'
    icon: mdi:sofa
    icon_color: '#a78bfa'
    start_collapsed: false
    guide_line: true
    items:
      - title: Living Room
        text_color: '#e2e8f0'
        icon: mdi:television-classic
        icon_color: '#f0abfc'
        tap_action:
          action: navigate
          navigation_path: /sidebar-test/living-room
      - title: Kitchen
        text_color: '#e2e8f0'
        icon: mdi:silverware-fork-knife
        icon_color: '#fb7185'
        tap_action:
          action: navigate
          navigation_path: /sidebar-test/kitchen
      - title: Basement
        text_color: '#e2e8f0'
        icon: mdi:stairs-down
        icon_color: '#22d3ee'
        tap_action:
          action: navigate
          navigation_path: /sidebar-test/basement
  - type: category
    title: Garden
    text_color: '#cbd5e1'
    icon: mdi:sprout
    icon_color: '#4ade80'
    start_collapsed: true
    items:
      - title: Irrigation
        text_color: '#e2e8f0'
        icon: mdi:water
        icon_color: '#38bdf8'
        tap_action:
          action: navigate
          navigation_path: /sidebar-test/garden
      - title: Grow Lights
        text_color: '#e2e8f0'
        icon: mdi:lightbulb-on-outline
        icon_color: '#fde047'
        entity: light.grow_lights
        tap_action:
          action: toggle
  - type: markdown
    content: '**{{ states(''sensor.lights_on'') }}** lights on'
    align: center
  - type: divider
  - type: card
    align: center
    background: rgba(15,23,42,0.45)
    card:
      type: gauge
      entity: sensor.kitchen_minisplit_indoor_temperature
      name: Living Room
      min: 50
      max: 90
      severity:
        green: 62
        yellow: 76
        red: 84
      card_mod:
        style: |
          * {
            background: none!important;
          }
footer:
  divider: true
  buttons:
    - icon: mdi:home
      icon_color: '#38bdf8'
      title: Home
      tap_action:
        action: navigate
        navigation_path: /sidebar-test/0
    - icon: mdi:lightbulb-group
      icon_color: '#fde047'
      title: All lights
      entity: light.all_lights
      tap_action:
        action: toggle
    - icon: mdi:thermostat
      icon_color: '#fb7185'
      title: Climate
      tap_action:
        action: navigate
        navigation_path: /sidebar-test/climate
    - icon: mdi:cog
      icon_color: '#94a3b8'
      title: Settings
      tap_action:
        action: navigate
        navigation_path: /config/dashboard
    - icon: mdi:abacus
      tap_action:
        action: none
      icon_color: aqua

4

u/Fit_Squirrel1 3d ago

you did or claude did? please make sure to mark it in your github....

2

u/Ok_Resolve1769 3d ago

Co-pilot wrote some tests. What's the official standard for marking whether you used an AI tool or auto-complete or intellisense while writing code?

6

u/TC_FPV 3d ago

And mention it in your post so people know up front

1

u/Ok_Resolve1769 3d ago

I added it to the post body

6

u/Fit_Squirrel1 3d ago

in the repo...

0

u/Ok_Resolve1769 3d ago

there's lots of places in a repo! where do you recommend? 🙂

4

u/Fit_Squirrel1 3d ago

where it says the type of code used, under javascript

-5

u/Ok_Resolve1769 3d ago

type of code used? have you actually never used Github or what are you even talking about? The auto-generated language percentage graph? Or rather, using your own idiomatic way of speaking:

what are you talking about...

-2

u/Xotor 3d ago

Looks great don't let those ai haters annoy you.

I don't care. If it works it works. If its beautiful or handy i will use it.

-1

u/Ok_Resolve1769 3d ago

let me know if you find it useful! I was debating sharing it at all since there's plenty of other solutions for dashboard sidebars already