</> ConvertAtlas Developer Tools
Admin Dashboards · Advanced

Scholar — Learning Platform Dashboard

A modern learning-platform dashboard with student overview KPIs, continue-learning course cards with progress bars, a weekly-goal ring, learning streak, upcoming lessons, recent quiz scores, assignments due, recommended courses and instructor messages. Pure CSS + inline SVG.

<div class="sc-shell">
  <button class="sc-burger" data-sc-toggle aria-label="Toggle navigation" aria-expanded="false"><span></span><span></span><span></span></button>
  <div class="sc-overlay" data-sc-overlay hidden></div>

  <aside class="sc-side" data-sc-side aria-label="Primary">
    <a class="sc-logo" href="#"><span class="sc-logo-mark" aria-hidden="true">🎓</span> Scholar</a>
    <nav class="sc-nav" aria-label="Main navigation">
      <a href="#" aria-current="page"><i aria-hidden="true">▦</i> Dashboard</a>
      <a href="#"><i aria-hidden="true">📚</i> My courses</a>
      <a href="#"><i aria-hidden="true">📝</i> Assignments <span class="sc-pill">3</span></a>
      <a href="#"><i aria-hidden="true">🏆</i> Certificates</a>
      <a href="#"><i aria-hidden="true">💬</i> Messages</a>
      <a href="#"><i aria-hidden="true">⚙</i> Settings</a>
    </nav>
    <footer class="sc-side-foot">Created for <a href="https://convertatlas.org" rel="noopener">convertatlas.org</a> templates</footer>
  </aside>

  <main class="sc-main">
    <header class="sc-top">
      <div><h1>Hi Elena, keep it up! 🔥</h1><p class="sc-sub">You're on a 12-day learning streak.</p></div>
      <div class="sc-top-actions">
        <label class="sc-search"><span class="visually-hidden">Search courses</span><i aria-hidden="true">⌕</i><input type="search" placeholder="Search courses, lessons…"></label>
        <button class="sc-icon-btn" aria-label="Notifications"><i aria-hidden="true">🔔</i><span class="sc-dot" aria-hidden="true"></span></button>
        <span class="sc-avatar" aria-hidden="true">EM</span>
      </div>
    </header>

    <div class="sc-kpis">
      <article class="sc-kpi" style="--c:#7c3aed"><span class="sc-kpi-ico" aria-hidden="true">📚</span><div><b>6</b><span>Enrolled courses</span></div></article>
      <article class="sc-kpi" style="--c:#10b981"><span class="sc-kpi-ico" aria-hidden="true">✓</span><div><b>148</b><span>Lessons completed</span></div></article>
      <article class="sc-kpi" style="--c:#f59e0b"><span class="sc-kpi-ico" aria-hidden="true">🏆</span><div><b>4</b><span>Certificates earned</span></div></article>
      <article class="sc-kpi" style="--c:#0ea5e9"><span class="sc-kpi-ico" aria-hidden="true">🔥</span><div><b>12</b><span>Day streak</span></div></article>
    </div>

    <div class="sc-grid">
      <section class="sc-card sc-col-2">
        <div class="sc-card-head"><h2>Continue learning</h2><a class="sc-link" href="#">All courses</a></div>
        <ul class="sc-courses">
          <li class="sc-course">
            <span class="sc-course-thumb" style="--c:#7c3aed" aria-hidden="true">CSS</span>
            <div class="sc-course-body">
              <div class="sc-course-top"><b>CSS Mastery Path</b><span class="sc-badge sc-b-purple">In progress</span></div>
              <i>Lesson 38 of 52 · Grid & Subgrid</i>
              <div class="sc-mini-bar"><i style="width:73%;background:#7c3aed"></i></div>
              <span class="sc-progress-num">73% complete</span>
            </div>
            <button class="sc-resume" type="button">Resume</button>
          </li>
          <li class="sc-course">
            <span class="sc-course-thumb" style="--c:#0ea5e9" aria-hidden="true">AI</span>
            <div class="sc-course-body">
              <div class="sc-course-top"><b>AI for Beginners</b><span class="sc-badge sc-b-blue">In progress</span></div>
              <i>Lesson 9 of 15 · Prompt Engineering</i>
              <div class="sc-mini-bar"><i style="width:60%;background:#0ea5e9"></i></div>
              <span class="sc-progress-num">60% complete</span>
            </div>
            <button class="sc-resume" type="button">Resume</button>
          </li>
          <li class="sc-course">
            <span class="sc-course-thumb" style="--c:#f59e0b" aria-hidden="true">JS</span>
            <div class="sc-course-body">
              <div class="sc-course-top"><b>Modern JavaScript</b><span class="sc-badge sc-b-green">Complete</span></div>
              <i>All 24 lessons done · Certificate ready</i>
              <div class="sc-mini-bar"><i style="width:100%;background:#10b981"></i></div>
              <span class="sc-progress-num">100% complete</span>
            </div>
            <button class="sc-resume sc-cert" type="button">Certificate</button>
          </li>
        </ul>
      </section>

      <section class="sc-card">
        <div class="sc-card-head"><h2>Weekly goal</h2></div>
        <div class="sc-ring-wrap">
          <svg class="sc-ring" viewBox="0 0 42 42" role="img" aria-label="Weekly goal 80 percent: 4 of 5 hours">
            <circle cx="21" cy="21" r="15.9" fill="none" stroke="#efe9fb" stroke-width="5"/>
            <circle cx="21" cy="21" r="15.9" fill="none" stroke="#7c3aed" stroke-width="5" stroke-linecap="round" stroke-dasharray="80 20" stroke-dashoffset="25"/>
          </svg>
          <div class="sc-ring-c"><b>4h</b><span>of 5h</span></div>
        </div>
        <div class="sc-streak" aria-label="This week's activity">
          <span class="sc-day sc-on">M</span><span class="sc-day sc-on">T</span><span class="sc-day sc-on">W</span><span class="sc-day sc-on">T</span><span class="sc-day">F</span><span class="sc-day">S</span><span class="sc-day">S</span>
        </div>
        <p class="sc-streak-note">4 of 7 days active this week</p>
      </section>
    </div>

    <div class="sc-grid">
      <section class="sc-card">
        <div class="sc-card-head"><h2>Upcoming lessons</h2></div>
        <ul class="sc-upcoming">
          <li><div class="sc-up-time"><b>10:00</b><span>Today</span></div><div class="sc-up-info"><b>Live: CSS Container Queries</b><i>with Mara Holt</i></div></li>
          <li><div class="sc-up-time"><b>15:30</b><span>Today</span></div><div class="sc-up-info"><b>Quiz: Flexbox & Grid</b><i>CSS Mastery Path</i></div></li>
          <li><div class="sc-up-time"><b>09:00</b><span>Tue</span></div><div class="sc-up-info"><b>Workshop: AI prompting</b><i>AI for Beginners</i></div></li>
        </ul>
      </section>

      <section class="sc-card">
        <div class="sc-card-head"><h2>Recent quiz scores</h2></div>
        <ul class="sc-quizzes">
          <li><div class="sc-quiz-info"><b>Flexbox fundamentals</b><i>CSS Mastery Path</i></div><span class="sc-score sc-s-high">92%</span></li>
          <li><div class="sc-quiz-info"><b>JS async & promises</b><i>Modern JavaScript</i></div><span class="sc-score sc-s-high">88%</span></li>
          <li><div class="sc-quiz-info"><b>Neural network basics</b><i>AI for Beginners</i></div><span class="sc-score sc-s-mid">74%</span></li>
          <li><div class="sc-quiz-info"><b>Selectors & specificity</b><i>CSS Mastery Path</i></div><span class="sc-score sc-s-high">95%</span></li>
        </ul>
      </section>

      <section class="sc-card">
        <div class="sc-card-head"><h2>Assignments due</h2></div>
        <ul class="sc-assignments">
          <li><span class="sc-asn-led sc-led-soon" aria-hidden="true"></span><div><b>Build a responsive grid</b><i>Due in 2 days</i></div></li>
          <li><span class="sc-asn-led" aria-hidden="true"></span><div><b>Prompt design exercise</b><i>Due in 5 days</i></div></li>
          <li><span class="sc-asn-led sc-led-late" aria-hidden="true"></span><div><b>JS mini-project</b><i>Overdue · 1 day</i></div></li>
        </ul>
      </section>
    </div>

    <div class="sc-grid">
      <section class="sc-card sc-col-2">
        <div class="sc-card-head"><h2>Recommended for you</h2><a class="sc-link" href="#">Browse catalog</a></div>
        <div class="sc-recommend">
          <article class="sc-rec"><span class="sc-rec-thumb" style="--c:#ec4899" aria-hidden="true">UX</span><b>UI/UX Design Foundations</b><i>8 hrs · Beginner</i><span class="sc-rec-meta">★ 4.9 · 12k learners</span></article>
          <article class="sc-rec"><span class="sc-rec-thumb" style="--c:#0ea5e9" aria-hidden="true">TS</span><b>TypeScript in Depth</b><i>11 hrs · Intermediate</i><span class="sc-rec-meta">★ 4.8 · 8.4k learners</span></article>
          <article class="sc-rec"><span class="sc-rec-thumb" style="--c:#16a34a" aria-hidden="true">DB</span><b>Databases &amp; SQL</b><i>9 hrs · Beginner</i><span class="sc-rec-meta">★ 4.7 · 6.1k learners</span></article>
        </div>
      </section>

      <section class="sc-card">
        <div class="sc-card-head"><h2>Instructor messages</h2></div>
        <ul class="sc-messages">
          <li><span class="sc-msg-av" aria-hidden="true">MH</span><div><p><b>Mara Holt</b> · CSS Mastery</p><i>"Great work on the grid exercise! Try…"</i><time>1 hr ago</time></div></li>
          <li><span class="sc-msg-av" aria-hidden="true">DK</span><div><p><b>Dr. Kane</b> · AI for Beginners</p><i>"Your prompt assignment feedback is…"</i><time>Yesterday</time></div></li>
        </ul>
      </section>
    </div>
  </main>
</div>
*{box-sizing:border-box}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sc-shell{--sc-bg:#f7f5fc;--sc-card:#fff;--sc-border:#ece8f6;--sc-text:#1e1830;--sc-soft:#6f6789;--sc-accent:#7c3aed;min-height:100vh;display:flex;background:var(--sc-bg);color:var(--sc-text);font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.sc-side{width:234px;flex:none;background:var(--sc-card);border-right:1px solid var(--sc-border);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}
.sc-logo{display:flex;align-items:center;gap:10px;color:var(--sc-text);text-decoration:none;font-weight:800;font-size:1.18rem;margin-bottom:22px;padding:0 8px;font-family:'Sora',sans-serif}
.sc-logo-mark{font-size:1.3rem}
.sc-nav{display:flex;flex-direction:column;gap:3px;flex:1}
.sc-nav a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:10px;color:var(--sc-soft);text-decoration:none;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}
.sc-nav a i{font-style:normal;width:18px;text-align:center}
.sc-nav a:hover{background:#f3eefc;color:var(--sc-text)}
.sc-nav a[aria-current=page]{background:#f0e9fe;color:var(--sc-accent)}
.sc-nav a:focus-visible{outline:2px solid var(--sc-accent);outline-offset:2px}
.sc-pill{margin-left:auto;font-size:.7rem;font-weight:700;background:#f59e0b;color:#fff;border-radius:999px;padding:2px 8px}
.sc-side-foot{margin-top:14px;font-size:.74rem;color:#9b92b3;padding:0 8px}
.sc-side-foot a{color:var(--sc-accent);text-decoration:none;font-weight:600}.sc-side-foot a:hover{text-decoration:underline}
.sc-main{flex:1;min-width:0;padding:24px 28px 40px}
.sc-top{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:24px}
.sc-top h1{font-family:'Sora',sans-serif;font-weight:800;font-size:1.5rem;margin:0}
.sc-sub{color:var(--sc-soft);font-size:.9rem;margin:3px 0 0}
.sc-top-actions{display:flex;align-items:center;gap:11px}
.sc-search{position:relative;display:flex;align-items:center}
.sc-search i{position:absolute;left:12px;color:var(--sc-soft)}
.sc-search input{padding:10px 14px 10px 34px;border-radius:11px;border:1px solid var(--sc-border);background:#fff;color:var(--sc-text);font:inherit;font-size:.88rem;width:230px}
.sc-search input:focus{outline:none;border-color:var(--sc-accent);box-shadow:0 0 0 3px rgba(124,58,237,.16)}
.sc-icon-btn{position:relative;width:42px;height:42px;border-radius:11px;border:1px solid var(--sc-border);background:#fff;font-size:1.05rem;cursor:pointer}
.sc-icon-btn:focus-visible{outline:2px solid var(--sc-accent);outline-offset:2px}
.sc-dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:#ef4444;border:2px solid #fff}
.sc-avatar{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:.82rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#7c3aed,#ec4899)}
.sc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}
.sc-kpi{background:var(--sc-card);border:1px solid var(--sc-border);border-radius:15px;padding:18px;display:flex;align-items:center;gap:14px}
.sc-kpi-ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.2rem;flex:none;background:color-mix(in srgb,var(--c) 15%,transparent)}
.sc-kpi b{font-family:'Sora',sans-serif;font-size:1.6rem;font-weight:800;display:block;line-height:1.1}
.sc-kpi span{font-size:.82rem;color:var(--sc-soft)}
.sc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.sc-col-2{grid-column:span 2}
.sc-card{background:var(--sc-card);border:1px solid var(--sc-border);border-radius:15px;padding:18px;min-width:0}
.sc-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}
.sc-card-head h2{font-family:'Sora',sans-serif;font-size:1.02rem;font-weight:700;margin:0}
.sc-link{font-size:.82rem;color:var(--sc-accent);text-decoration:none;font-weight:600}.sc-link:hover{text-decoration:underline}
.sc-courses{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:13px}
.sc-course{display:flex;align-items:center;gap:14px;padding:13px;border:1px solid var(--sc-border);border-radius:13px}
.sc-course-thumb{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:.92rem;color:var(--c);background:color-mix(in srgb,var(--c) 15%,transparent);flex:none}
.sc-course-body{flex:1;min-width:0}
.sc-course-top{display:flex;align-items:center;gap:10px;margin-bottom:3px}
.sc-course-top b{font-size:.94rem}
.sc-course-body i{font-style:normal;font-size:.78rem;color:var(--sc-soft);display:block;margin-bottom:8px}
.sc-mini-bar{height:7px;border-radius:99px;background:#efeaf8;overflow:hidden}
.sc-mini-bar i{display:block;height:100%;border-radius:99px}
.sc-progress-num{font-size:.72rem;color:var(--sc-soft);display:block;margin-top:5px}
.sc-resume{border:0;border-radius:10px;background:var(--sc-accent);color:#fff;font:inherit;font-weight:700;font-size:.82rem;padding:9px 16px;cursor:pointer;flex:none;transition:.15s}
.sc-resume:hover{background:#6d28d9}.sc-resume:focus-visible{outline:2px solid #c4b5fd;outline-offset:2px}
.sc-cert{background:#10b981}.sc-cert:hover{background:#059669}
.sc-badge{font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.sc-b-purple{color:#7c3aed;background:#f0e9fe}
.sc-b-blue{color:#0284c7;background:#e0f2fe}
.sc-b-green{color:#16a34a;background:#dcfce7}
.sc-ring-wrap{position:relative;width:140px;margin:4px auto 14px}
.sc-ring{width:140px;height:140px;transform:rotate(-90deg)}
.sc-ring-c{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.sc-ring-c b{display:block;font-family:'Sora',sans-serif;font-size:1.5rem;font-weight:800}
.sc-ring-c span{font-size:.74rem;color:var(--sc-soft)}
.sc-streak{display:flex;gap:7px;justify-content:center;margin-bottom:8px}
.sc-day{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:.74rem;font-weight:700;color:var(--sc-soft);background:#f3eefc}
.sc-day.sc-on{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7)}
.sc-streak-note{text-align:center;font-size:.78rem;color:var(--sc-soft);margin:0}
.sc-upcoming{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:13px}
.sc-upcoming li{display:flex;align-items:center;gap:12px}
.sc-up-time{width:54px;text-align:center;background:#f3eefc;border-radius:10px;padding:7px 0;flex:none}
.sc-up-time b{font-family:'Sora',sans-serif;font-size:.92rem;display:block;line-height:1}
.sc-up-time span{font-size:.68rem;color:var(--sc-soft)}
.sc-up-info b{font-size:.86rem;display:block}
.sc-up-info i{font-style:normal;font-size:.76rem;color:var(--sc-soft)}
.sc-quizzes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.sc-quizzes li{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sc-quiz-info b{font-size:.86rem;display:block}
.sc-quiz-info i{font-style:normal;font-size:.76rem;color:var(--sc-soft)}
.sc-score{font-family:'Sora',sans-serif;font-weight:800;font-size:.92rem;padding:4px 10px;border-radius:9px}
.sc-s-high{color:#16a34a;background:#dcfce7}
.sc-s-mid{color:#b45309;background:#fef3c7}
.sc-assignments{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:13px}
.sc-assignments li{display:flex;align-items:center;gap:11px}
.sc-asn-led{width:9px;height:9px;border-radius:50%;background:#7c3aed;flex:none}
.sc-led-soon{background:#f59e0b}.sc-led-late{background:#ef4444}
.sc-assignments b{font-size:.86rem;display:block}
.sc-assignments i{font-style:normal;font-size:.76rem;color:var(--sc-soft)}
.sc-recommend{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sc-rec{border:1px solid var(--sc-border);border-radius:13px;padding:14px}
.sc-rec-thumb{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:.84rem;color:var(--c);background:color-mix(in srgb,var(--c) 15%,transparent);margin-bottom:10px}
.sc-rec b{font-size:.88rem;display:block;margin-bottom:3px}
.sc-rec i{font-style:normal;font-size:.76rem;color:var(--sc-soft);display:block;margin-bottom:8px}
.sc-rec-meta{font-size:.74rem;color:#f59e0b;font-weight:600}
.sc-messages{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.sc-messages li{display:flex;gap:11px}
.sc-msg-av{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:.72rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);flex:none}
.sc-messages p{margin:0;font-size:.82rem;color:var(--sc-text)}.sc-messages p b{font-weight:700}
.sc-messages i{font-style:normal;font-size:.78rem;color:var(--sc-soft);display:block;margin:2px 0}
.sc-messages time{font-size:.72rem;color:var(--sc-soft)}
.sc-burger{display:none;position:fixed;top:16px;left:16px;z-index:60;width:44px;height:44px;border-radius:11px;border:1px solid var(--sc-border);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer}
.sc-burger span{width:18px;height:2px;background:var(--sc-text);border-radius:2px}
.sc-overlay{position:fixed;inset:0;background:rgba(30,24,48,.4);z-index:40;border:0}
@media(max-width:1080px){.sc-kpis{grid-template-columns:repeat(2,1fr)}.sc-grid{grid-template-columns:1fr}.sc-col-2{grid-column:span 1}.sc-recommend{grid-template-columns:1fr}}
@media(max-width:760px){
  .sc-burger{display:flex}
  .sc-side{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:transform .25s ease}
  .sc-side.is-open{transform:translateX(0)}
  .sc-main{padding:72px 16px 32px}
  .sc-top-actions{width:100%;flex-wrap:wrap}.sc-search{flex:1}.sc-search input{width:100%}
  .sc-kpis{grid-template-columns:1fr}
  .sc-course{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.sc-side{transition:none}.sc-nav a,.sc-resume{transition:none}}
(function(){
  var side=document.querySelector('[data-sc-side]');
  var btn=document.querySelector('[data-sc-toggle]');
  var ov=document.querySelector('[data-sc-overlay]');
  if(!side||!btn)return;
  function open(o){side.classList.toggle('is-open',o);btn.setAttribute('aria-expanded',o?'true':'false');if(ov)ov.hidden=!o;}
  btn.addEventListener('click',function(){open(!side.classList.contains('is-open'));});
  if(ov)ov.addEventListener('click',function(){open(false);});
})();
Free to use — no attribution required. This is a complete, responsive Bootstrap 5 page. Download a ready-to-open .html file with all CDN links included, or copy the HTML and drop it into your project.

What's included in this template

The Scholar — Learning Platform Dashboard is a complete admin dashboards design with realistic demo content — ready to preview, copy or download as a single responsive HTML file. Key features:

  • Education / LMS UI
  • Student overview KPIs
  • Course cards with progress bars
  • Weekly-goal ring + streak tracker
  • Upcoming lessons schedule
  • Quiz scores + assignments due
  • Recommended courses grid
  • Instructor messages
  • Collapsible mobile sidebar
  • No chart dependency

How to use it

Open the live preview above to see the full design at desktop, tablet and mobile widths. When you are happy with it, use Download to save a single scholar-learning-dashboard.html file, or Copy to grab the source. All required libraries load from public CDNs, so the file works the moment you open it — just replace the demo content with your own and publish.