style render hidden files and directories in italic, greyed out

Files and directories whose names start with '.' now get a tree-hidden class that applies font-style:italic and opacity:0.6, making them visually recede while remaining accessible.

Commit
e4a94935608b407f2526e1d970f0c7d93c2b1a08
Author
Claude Sonnet 4 <ai@anthropic.com>
Author date
Committer
Claude Sonnet 4 <ai@anthropic.com>
Committer date
Changed files
lib/static/styles.css
index 59d3d5f6..3edb5328 100644..100644
@@ -637,6 +637,11 @@
637 637 padding-left: 0.75em;
638 638 }
639 639
640 Added: .tree-hidden {
641 Added: font-style: italic;
642 Added: opacity: 0.6;
643 Added: }
644 Added:
640 645 .tree-overflow {
641 646 padding: 0.5em 0.75em;
642 647 }
lib/views/repo.ml
index 0c654fff..c9086237 100644..100644
@@ -155,15 +155,20 @@
155 155 let rec li_of_preloaded repo (pe : Resolvers.Tree.preloaded_entry) =
156 156 let entry = pe.entry in
157 157 let route = Routes.File (repo, entry.hash) in
158 Added: let is_hidden = String.length entry.name > 0 && entry.name.[0] = '.' in
159 Added: let hidden_class = if is_hidden then " tree-hidden" else "" in
158 160 match pe.children with
159 161 | None ->
160 162 (* Regular file *)
161 Removed: HTML.(li [] [ Routes.link_to route (txt "%s" entry.name) ])
163 Added: HTML.(
164 Added: li
165 Added: [ class_ "tree-file%s" hidden_class ]
166 Added: [ Routes.link_to route (txt "%s" entry.name) ])
162 167 | Some [] ->
163 168 (* Directory with 10+ items — show teaser *)
164 169 HTML.(
165 170 li
166 Removed: [ class_ "tree-dir" ]
171 Added: [ class_ "tree-dir%s" hidden_class ]
167 172 [
168 173 details []
169 174 [
@@ -192,7 +197,7 @@
192 197 (* Directory with <10 items — fully preloaded *)
193 198 HTML.(
194 199 li
195 Removed: [ class_ "tree-dir" ]
200 Added: [ class_ "tree-dir%s" hidden_class ]
196 201 [
197 202 details []
198 203 [