+ #likeCanvas {
+ width: 100%;
+ height: 100%;
+ display: block;
+ cursor: crosshair;
+ }
-
-
-
-
+ .graph-legend {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 10px 16px;
+ border-top: 1px solid #141414;
+ background: #050505;
+ font-size: 0.68rem;
+ color: #666666;
+ flex-wrap: wrap;
+ gap: 10px;
+ }
-
+ .legend-items {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ flex-wrap: wrap;
+ }
-
-
-
-
hugging-face like tracker
-
paste a model, dataset, or space path to generate a daily like growth graph.
-
-
+ .legend-item {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ }
-
-
-
-
-
+ .legend-swatch {
+ width: 12px;
+ height: 12px;
+ border-radius: 2px;
+ display: inline-block;
+ }
+
+ .legend-line {
+ width: 16px;
+ height: 2px;
+ display: inline-block;
+ }
+
+ /* ── Floating Graph Tooltip ── */
+ .graph-tooltip {
+ position: fixed;
+ background: rgba(10, 10, 10, 0.96);
+ border: 1px solid #444444;
+ border-radius: 3px;
+ padding: 8px 12px;
+ font-size: 0.7rem;
+ pointer-events: none;
+ z-index: 200;
+ display: none;
+ color: #ffffff;
+ line-height: 1.55;
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.8);
+ min-width: 185px;
+ }
+ .tt-date {
+ font-weight: 700;
+ color: #ffffff;
+ border-bottom: 1px solid #222222;
+ padding-bottom: 4px;
+ margin-bottom: 4px;
+ }
+ .tt-row {
+ display: flex;
+ justify-content: space-between;
+ gap: 14px;
+ color: #888888;
+ }
+ .tt-row span:last-child {
+ color: #ffffff;
+ font-weight: 700;
+ }
+
+ /* ── Daily Activity Pulse Matrix ── */
+ .pulse-section {
+ margin-top: 16px;
+ padding-top: 16px;
+ border-top: 1px solid #1a1a1a;
+ }
+
+ .pulse-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 10px;
+ flex-wrap: wrap;
+ gap: 8px;
+ }
+
+ .pulse-title {
+ font-size: 0.7rem;
+ font-weight: 600;
+ color: #888888;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ }
+
+ .contrib-map-wrapper {
+ overflow-x: auto;
+ padding-bottom: 4px;
+ }
+
+ .contrib-map {
+ display: grid;
+ grid-template-rows: repeat(7, 13px);
+ grid-auto-flow: column;
+ grid-auto-columns: 13px;
+ gap: 3px;
+ min-width: fit-content;
+ }
+
+ .contrib-cell {
+ width: 13px;
+ height: 13px;
+ border-radius: 2px;
+ background: #111111;
+ transition: transform 0.12s;
+ }
+ .contrib-cell:hover {
+ transform: scale(1.4);
+ z-index: 2;
+ position: relative;
+ }
+ .contrib-cell[data-level="0"] { background: #111111; }
+ .contrib-cell[data-level="1"] { background: #333333; }
+ .contrib-cell[data-level="2"] { background: #666666; }
+ .contrib-cell[data-level="3"] { background: #aaaaaa; }
+ .contrib-cell[data-level="4"] { background: #ffffff; }
+
+ /* ── Tab Bar ── */
+ .tab-bar {
+ display: flex;
+ border: 1px solid #222222;
+ border-radius: 3px;
+ overflow: hidden;
+ margin-bottom: 14px;
+ }
+
+ .tab-btn {
+ flex: 1;
+ background: #0a0a0a;
+ border: none;
+ border-right: 1px solid #222222;
+ padding: 10px 14px;
+ cursor: pointer;
+ font-size: 0.76rem;
+ font-weight: 600;
+ color: #555555;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ transition: all 0.15s;
+ }
+ .tab-btn:last-child { border-right: none; }
+ .tab-btn:hover { background: #111111; color: #aaaaaa; }
+ .tab-btn.active-tab {
+ background: #1a1a1a;
+ color: #ffffff;
+ }
+
+ .tab-count {
+ background: #222222;
+ padding: 2px 7px;
+ border-radius: 2px;
+ font-size: 0.66rem;
+ font-weight: 700;
+ }
+ .tab-btn.active-tab .tab-count { background: #333333; }
+
+ /* ── Filter Bar ── */
+ .filter-bar {
+ display: flex;
+ gap: 8px;
+ margin-bottom: 12px;
+ flex-wrap: wrap;
+ align-items: center;
+ }
+
+ .filter-label {
+ font-size: 0.72rem;
+ color: #555555;
+ font-weight: 600;
+ margin-right: 4px;
+ }
+
+ .filter-pill {
+ background: transparent;
+ border: 1px solid #222222;
+ color: #666666;
+ padding: 5px 12px;
+ border-radius: 3px;
+ cursor: pointer;
+ font-size: 0.72rem;
+ font-weight: 600;
+ transition: all 0.15s;
+ white-space: nowrap;
+ }
+ .filter-pill:hover { border-color: #555555; color: #aaaaaa; }
+ .filter-pill.active { background: #ffffff; color: #000000; border-color: #ffffff; }
+
+ .filter-search {
+ margin-left: auto;
+ background: #0a0a0a;
+ border: 1px solid #222222;
+ border-radius: 3px;
+ padding: 5px 12px;
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ transition: border-color 0.15s;
+ }
+ .filter-search:focus-within { border-color: #ffffff; }
+ .filter-search-icon { color: #555555; font-size: 0.72rem; }
+ .filter-search input {
+ font-size: 0.72rem;
+ width: 165px;
+ background: transparent;
+ border: none;
+ color: #ffffff;
+ outline: none;
+ }
+ .filter-search input::placeholder { color: #444444; }
+
+ /* ── Tree / Log List ── */
+ .tree-wrapper {
+ border: 1px solid #222222;
+ border-radius: 3px;
+ display: flex;
+ flex-direction: column;
+ background: #000000;
+ overflow: hidden;
+ }
+
+ .tree-header {
+ background: #0a0a0a;
+ padding: 10px 16px;
+ border-bottom: 1px solid #222222;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 8px;
+ }
+
+ .tree-title {
+ font-size: 0.78rem;
+ font-weight: 600;
+ color: #666666;
+ }
+
+ .copy-btn {
+ background: #ffffff;
+ color: #000000;
+ border: none;
+ padding: 6px 14px;
+ border-radius: 3px;
+ font-size: 0.72rem;
+ font-weight: 700;
+ cursor: pointer;
+ transition: opacity 0.15s;
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ }
+ .copy-btn:hover { opacity: 0.85; }
+
+ .terminal-window {
+ background: #000000;
+ display: flex;
+ overflow: auto;
+ font-size: 12.5px;
+ line-height: 1.7;
+ max-height: 62vh;
+ }
+
+ .line-col {
+ padding: 14px 10px;
+ text-align: right;
+ color: #333333;
+ border-right: 1px solid #1a1a1a;
+ min-width: 44px;
+ user-select: none;
+ font-size: 0.7rem;
+ font-weight: 500;
+ }
+ .line-col div {
+ height: 30px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ }
+
+ .code-col {
+ padding: 14px;
+ flex: 1;
+ white-space: pre;
+ min-width: 0;
+ }
+
+ .tree-line {
+ display: flex;
+ align-items: center;
+ height: 30px;
+ border-radius: 2px;
+ padding: 0 6px;
+ gap: 4px;
+ }
+ .tree-line:hover { background: #0d0d0d; }
+
+ .t-prefix {
+ color: #444444;
+ white-space: pre;
+ margin-right: 4px;
+ flex-shrink: 0;
+ }
+
+ .t-name {
+ color: #ffffff;
+ font-weight: 600;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ min-width: 0;
+ }
+ .t-name a { color: #ffffff; transition: color 0.1s; }
+ .t-name a:hover { color: #cccccc; text-decoration: underline; }
+
+ .t-bar {
+ color: #777777;
+ font-size: 0.7rem;
+ margin-left: 10px;
+ letter-spacing: -1px;
+ flex-shrink: 0;
+ }
+
+ .t-meta {
+ margin-left: auto;
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ flex-shrink: 0;
+ padding-left: 12px;
+ }
+
+ .t-stat {
+ font-size: 0.68rem;
+ color: #666666;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ font-weight: 500;
+ white-space: nowrap;
+ }
+ .t-stat.highlight {
+ color: #ffffff;
+ font-weight: 700;
+ }
+
+ .t-action-btn {
+ background: #141414;
+ border: 1px solid #333333;
+ color: #cccccc;
+ cursor: pointer;
+ padding: 2px 8px;
+ border-radius: 2px;
+ font-size: 0.65rem;
+ font-weight: 600;
+ transition: all 0.15s;
+ }
+ .t-action-btn:hover {
+ background: #ffffff;
+ color: #000000;
+ border-color: #ffffff;
+ }
+
+ .no-data {
+ padding: 40px 20px;
+ text-align: center;
+ color: #555555;
+ font-size: 0.82rem;
+ }
+
+ /* ── Footer ── */
+ .footer {
+ padding: 30px 20px;
+ text-align: center;
+ font-size: 0.68rem;
+ color: #333333;
+ margin-top: auto;
+ border-top: 1px solid #111111;
+ }
+ .footer a { color: #888888; font-weight: 600; }
+ .footer a:hover { color: #ffffff; }
+
+ /* ── Spinner ── */
+ .spinner {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border: 2px solid #333333;
+ border-top-color: #ffffff;
+ border-radius: 50%;
+ animation: spin 0.6s linear infinite;
+ margin-right: 8px;
+ vertical-align: middle;
+ }
+
+ @keyframes spin { to { transform: rotate(360deg); } }
+ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
+
+ .hidden { display: none !important; }
+
+ /* ── Responsive ── */
+ @media (max-width: 680px) {
+ .input-line { flex-direction: column; }
+ .type-select, .exec-btn { width: 100%; justify-content: center; }
+ .profile-top { flex-direction: column; text-align: center; }
+ .profile-name { justify-content: center; }
+ .profile-social { justify-content: center; }
+ .stats-row { grid-template-columns: 1fr 1fr; }
+ .graph-canvas-wrap { height: 280px; padding: 12px 8px; }
+ .filter-bar { flex-direction: column; align-items: stretch; }
+ .filter-search { margin-left: 0; }
+ .filter-search input { width: 100%; }
+ .t-bar { display: none; }
+ .title-bar { padding: 10px 14px; }
+ .term-body { padding: 14px; }
+ }
+
+
+
+
+
+
+
+
[like-graph]
+
hf daily & cumulative like telemetry
+
+
+ token
+
+
+ csv
+
+
+ report
+
+
+
+
+
+
+
+ token ~$
+
+ save
+ clear
+
+
stored locally in browser localStorage. unlocks private repos, higher rate limits & expanded liker telemetry.
+
+
+
+
+
+
+
+
+
+ examples:
+
+ [model] prithivMLmods/Qwen-Image-Edit-2511-Unblur-Upscale
+
+
+ [org-model] autotrust/JEV-27B-VL
+
+
+ [space] prithivMLmods/Qwen-Image-Edit-2511-LoRAs-Fast
+
+
+ [space] prithivMLmods/FireRed-Image-Edit-1.0-Fast
+
+
+ [org] autotrust
+
+
+ [user] prithivMLmods
+
+
+
+
+
+
+
+
+
hugging-face like-graph telemetry
+
+ paste any model, dataset, or space path (or full hf.co URL) to plot daily likes polled and cumulative growth since the day it was published. also supports organizations & users with daily breakdowns across models, datasets, and spaces.
+
+
+
+
featured repositories (models, spaces & datasets)
+
+
+
featured organizations & creators
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+ daily like log 0
+
+
+ likers 0
+
+
+ repositories 0
+
-
- Note: HuggingFace API provides current like totals but not historical daily snapshots. The graph projects an estimated organic growth curve from the publication date to the current like count.
+
+
+
+
+
+
+