File size: 7,467 Bytes
c8876d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="theme-color" content="#ffffff">
  <meta name="color-scheme" content="light dark">
  <meta name="description" content="Create polls, share a link, and view your results. Sign in with Hugging Face to create a poll. Anyone can vote.">
  <title>HuggingPolls</title>
  <script src="/static/theme.js"></script>
  <link rel="icon" href="/static/logo.png">
  <link rel="stylesheet" href="/static/style.css">
</head>
<body>
  <a class="skip-link" href="#app">Skip to content</a>
  <header>
    <a class="brand" href="#"><img src="/static/logo.png" alt="">HuggingPolls</a>
    <span class="header-description">Community polls</span>
    <span id="account"></span>
  </header>
  <div class="page-header">
    <div class="project-title">
      <img src="/static/logo.png" alt="Judge Huggy">
      <div><h1>HuggingPolls</h1><p>Create a poll and share it with anyone.</p></div>
    </div>
    <nav aria-label="Poll navigation">
      <a id="new-poll" class="tab" href="#">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="4" y="4" width="16" height="16" rx="2"/><path d="M12 8v8M8 12h8"/></svg>
        Create poll
      </a>
      <a id="see-polls" class="tab" href="#see-polls">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
        See polls
      </a>
      <a id="my-polls" class="tab" href="#my-polls">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M5 20V10h3v10M11 20V4h3v16M17 20v-7h3v7"/></svg>
        My polls
      </a>
    </nav>
  </div>
  <main id="app" tabindex="-1" aria-live="polite"></main>
  <footer>
    <p>HuggingPolls is an independent community project. Not affiliated with, endorsed by, or sponsored by Hugging Face.</p>
    <div class="theme-control">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8m-4-4v4"/></svg>
      <label for="theme-select">Theme</label>
      <select id="theme-select" aria-describedby="theme-status">
        <option value="system">System</option>
        <option value="light">Light</option>
        <option value="dark">Dark</option>
      </select>
      <span id="theme-status" class="sr-only" role="status"></span>
    </div>
  </footer>
  <div id="toast" role="status" hidden></div>
  <template id="home-template">
    <div class="workspace">
      <section class="create-section">
        <div class="section-heading"><h2>Create a poll</h2><p>Add a question and at least two answer options.</p></div>
        <form id="create-form">
          <div class="label-row"><label for="question">Question <span aria-hidden="true">*</span></label><small id="question-count">0 / 240</small></div>
          <input id="question" maxlength="240" placeholder="What would you like to ask?" aria-describedby="question-count" required>
          <label for="description">Description <small>optional</small></label>
          <textarea id="description" maxlength="2000" placeholder="Add context for voters" rows="3"></textarea>
          <div class="label-row"><label id="options-label">Answer options <span aria-hidden="true">*</span></label><small id="options-count">2&ndash;12 options</small></div>
          <div id="options" role="group" aria-labelledby="options-label"></div>
          <button type="button" id="add-option" class="secondary add-option">+ Add option</button>
          <div class="poll-settings">
            <label for="duration">Voting duration</label>
            <select id="duration" aria-describedby="duration-help">
              <option value="1">1 hour</option>
              <option value="24">1 day</option>
              <option value="72">3 days</option>
              <option value="168" selected>7 days</option>
              <option value="720">30 days</option>
            </select>
            <p id="duration-help" class="subtle">Starts when you create the poll. Voting closes automatically; results stay available.</p>
            <label class="listing-choice" for="listed"><input id="listed" type="checkbox" checked><span><strong>List on See polls</strong><small>Let anyone discover your poll. Turn off to share it only by link.</small></span></label>
          </div>
          <div class="draft-row"><span id="draft-status" class="subtle" role="status"></span><button type="button" id="clear-draft" class="quiet" hidden>Clear draft</button></div>
          <div class="form-bottom"><p id="create-note" class="subtle">Sign in with Hugging Face to create a poll.</p><button class="primary" id="create-button" type="submit">Create poll</button></div>
        </form>
      </section>
      <aside>
        <h3>Discover and share</h3><p>Browse community questions in <a class="text-link" href="#see-polls">See polls</a>, or share a poll using its link. Anyone can vote, with or without an account.</p>
        <h3>Results and expiry</h3><p>Results appear after voting or once a poll closes. Choose how long voting stays open, from 1 hour to 30 days. Creators can view results and export votes at any time.</p>
        <h3>Voting</h3><p>Each voter selects one answer. Guest votes are limited by browser; signed-in votes are also checked by account.</p>
      </aside>
    </div>
  </template>
  <template id="browse-template">
    <div class="page-title browse-title"><div><h1>See polls</h1><p class="subtle">Explore community questions and add your vote. No account needed.</p></div><a class="primary" href="#">+ Create poll</a></div>
    <form id="browse-form" class="browse-filters" role="search" aria-label="Find polls">
      <div class="browse-search"><label for="poll-search">Search polls</label><div class="search-line"><input type="search" id="poll-search" maxlength="240" placeholder="Question, topic, or creator"><button type="submit" class="primary">Search</button></div></div>
      <div><label for="poll-status">Status</label><select id="poll-status"><option value="open">Open for voting</option><option value="closed">Closed &amp; expired</option><option value="all">All polls</option></select></div>
      <div><label for="poll-sort">Sort by</label><select id="poll-sort"><option value="newest">Newest first</option><option value="popular">Most votes</option><option value="ending">Ending soon</option></select></div>
    </form>
    <div class="browse-summary"><p id="browse-count" class="subtle" role="status">Finding polls…</p><button id="clear-filters" class="quiet" hidden>Clear filters</button></div>
    <section id="browse-results" aria-label="Polls" aria-busy="true"></section>
    <nav id="browse-pagination" class="pagination" aria-label="Browse pages" hidden><button id="previous-page" class="secondary">Previous</button><span id="browse-page" class="subtle"></span><button id="next-page" class="secondary">Next</button></nav>
  </template>
  <script src="/static/app.js" defer></script>
</body>
</html>