แพทเทิร์น

หน้าจอที่ประกอบจากคอมโพเนนต์ในไลบรารี คัดลอกโครงไปปรับใช้ได้ทันที ทุกตัวอย่างเปลี่ยนตามแบรนด์และธีมที่เลือก

เข้าสู่ระบบ

การ์ดเดียวกลางจอบนพื้นของแบรนด์ ปุ่มหลักเต็มความกว้าง ทางเลือกรองอยู่ใต้เส้นคั่น
aswinologyASWINOLOGY / Lurnelle

เข้าสู่ระบบ

เรียนต่อจากที่ค้างไว้

ลืมรหัสผ่าน

ยังไม่มีบัญชี สมัครฟรี

tsx
<div className="ds-canvas" style={{ minHeight: "100dvh", display: "grid", placeItems: "center" }}>
  <Card style={{ width: "min(400px, 100%)" }}>
    <CardHeader>
      <Wordmark />
      <CardTitle as="h1">เข้าสู่ระบบ</CardTitle>
      <CardDescription>เรียนต่อจากที่ค้างไว้</CardDescription>
    </CardHeader>
    <CardBody>
      <form className="ds-stack" data-gap="md">
        <Field label="อีเมล"><Input type="email" autoComplete="email" /></Field>
        <Field label="รหัสผ่าน" aside={<ArrowLink href="/reset" subtle plain>ลืมรหัสผ่าน</ArrowLink>}>
          <Input type="password" autoComplete="current-password" />
        </Field>
        <Button type="submit" variant="primary" full>เข้าสู่ระบบ</Button>
        <Separator />
        <Button variant="outline" full><GoogleLogo />ดำเนินการต่อด้วย Google</Button>
      </form>
    </CardBody>
  </Card>
</div>

ตั้งค่าบัญชี

เมนูซ้าย ฟอร์มขวา แบ่งส่วนด้วยหัวข้อและเส้นคั่น ส่วนอันตรายอยู่ล่างสุด

โปรไฟล์

แสดงบนใบประกาศและในชุมชน

สั้นๆ สองสามประโยค


การแจ้งเตือน


ลบบัญชี

ลบข้อมูลการเรียนและใบประกาศทั้งหมด ย้อนกลับไม่ได้

tsx
<div className="pattern-settings">
  <nav aria-label="ตั้งค่า"><Stack gap="xs">{/* links with aria-current */}</Stack></nav>
  <Stack gap="lg">
    <section><h2 className="ds-h3">โปรไฟล์</h2>{/* Fields */}</section>
    <Separator />
    <section><h2 className="ds-h3">การแจ้งเตือน</h2>{/* Switches: apply at once */}</section>
    <Separator />
    <section><h2 className="ds-h3">ลบบัญชี</h2><Button variant="danger">ลบบัญชี</Button></section>
  </Stack>
</div>

แคตตาล็อกคอร์ส

ตัวกรองเป็นแท็ก มุมมองเป็น Segmented การ์ดในกริดอัตโนมัติ และเลขหน้าด้านล่าง
tsx
<Stack gap="lg">
  <Cluster justify="between">
    <Cluster role="group" aria-label="กรองตามหัวข้อ">
      {topics.map(t => <Tag key={t} pressed={active === t} onClick={() => setActive(t)}>{t}</Tag>)}
    </Cluster>
    <Segmented name="view" legend="มุมมอง" size="sm" defaultValue="grid" options={…} />
  </Cluster>
  <Grid min="220px">{courses.map(c => <CourseCard key={c.slug} {...c} />)}</Grid>
  <Pagination page={1} total={4} href={p => `?page=${p}`} />
</Stack>

พอร์ตโฟลิโอโปรเจกต์

แพทเทิร์นของ ASWINOLOGY° โปสเตอร์หนึ่งใบต่อหนึ่งโปรเจกต์ สลับสีกระดาษให้มีจังหวะ

แพ็กเกจ

แพ็กเกจที่แนะนำใช้การ์ด inverse หนึ่งใบ ราคาแสดงเฉพาะที่ยืนยันแล้ว ราคาด้านล่างเป็นตัวอย่าง
เริ่มต้น

ฟรี

  • คอร์สฟรีทั้งหมด
  • Quiz และชีตสรุป
  • ชุมชนผู้เรียน
รายปีแนะนำ

฿2,990 /ปี

  • ทุกคอร์สในคลัง
  • Mock test พร้อมรายงานผล
  • ใบประกาศนียบัตร
  • ถามผู้สอนได้ไม่จำกัด
ปรึกษา

฿900 /45 นาที

  • คุยตัวต่อตัวกับอัศวิน
  • วางแผนการเรียนหรือพอร์ต
  • สรุปหลังคุยทางอีเมล
tsx
<div className="pattern-plans">
  <Card className="pattern-plan">…</Card>
  <Card className="pattern-plan" tone="inverse">…</Card>
  <Card className="pattern-plan">…</Card>
</div>

แดชบอร์ดผู้เรียน

ตัวเลขสำคัญสามตัว คอร์สที่กำลังเรียน และสถานะว่างที่บอกทางไปต่อ ตัวเลขในตัวอย่างเป็นข้อมูลสมมติ

สวัสดีอีกครั้ง Khun

เหลืออีก 2 บทก็จบสัปดาห์นี้แล้ว
เวลาเรียนสัปดาห์นี้4.2 ชม.+38 นาที เพิ่มขึ้น
บทเรียนที่จบ27+5 เพิ่มขึ้น
คะแนน Mock ล่าสุด72-4 ลดลงTGAT ชุด 2

เรียนต่อ

Agentic Workflows58%
Lingua Rush83%

ยังไม่มีงานที่ต้องส่ง

เมื่อผู้สอนสั่งงาน งานจะมาอยู่ที่นี่
tsx
<Grid min="180px">
  <Card><CardBody><Stat label="เวลาเรียนสัปดาห์นี้" value="4 ชม. 10 นาที" delta="+38 นาที" trend="up" /></CardBody></Card>
  …
</Grid>
<Card>
  <CardHeader><CardTitle>เรียนต่อ</CardTitle></CardHeader>
  <CardBody><Progress label="Agentic Workflows" value={7} max={12} showValue /></CardBody>
</Card>
<EmptyState title="ยังไม่มีงานที่ต้องส่ง" />

จองเวลาปรึกษา

Stepper บอกตำแหน่ง ตัวเลือกเวลาเป็น Radio สรุปและปุ่มไปต่ออยู่ด้านล่าง
  1. 1เลือกเวลา
  2. 2รายละเอียด
  3. 3ชำระเงิน
  4. 4ยืนยัน
เวลาที่ว่าง พฤหัสบดี 30 ต.ค.

สรุป

ปรึกษา 45 นาที ทาง Google Meet

เวลา19:00
ราคา฿900
ยังไม่ตัดเงินจนกว่าจะยืนยัน
tsx
<Stepper current={0} steps={[{ label: "เลือกเวลา" }, { label: "รายละเอียด" }, { label: "ชำระเงิน" }, { label: "ยืนยัน" }]} />
<ChoiceGroup legend="เวลาที่ว่าง พฤหัสบดี 30 ต.ค.">
  {slots.map(s => <Radio key={s} name="slot" value={s} label={s} />)}
</ChoiceGroup>