首页「全部」、提交详情的用户名和题名、题目页「点开看全部」「有 N 道差一点」、 班级对抗的班级名、知识点、后台标题等 30 多处原来和正文同色,鼠标移上去才变色, 手机上根本没有「移上去」。现在一律主题绿,移上去加下划线;没设颜色的文字按钮补上 type="primary"。排名名字列、整行可点的列表、后台 quaternary 次要按钮不动。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b3dca1a271
commit
b0700d0bd9
32 files changed
+141
-53
No files matched your search
@@ -197,13 +197,12 @@ watch(query, listAnnouncements, { deep: true })
|
||||
}
|
||||
|
||||
.ann-table :deep(.title-link) {
|
||||
color: inherit;
|
||||
color: v-bind("theme.primaryColor");
|
||||
font-weight: 500;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.ann-table :deep(.title-link:hover) {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { Icon } from "@iconify/vue"
|
||||
import { useThemeVars } from "naive-ui"
|
||||
import { getLearnStudent } from "admin/api"
|
||||
import { parseTime, readableDuration } from "utils/functions"
|
||||
@@ -159,6 +160,14 @@ watch(
|
||||
:class="stateOf(ex)"
|
||||
/>
|
||||
</span>
|
||||
<Icon
|
||||
v-if="lesson.exercises.length || lesson.problems.length"
|
||||
:icon="
|
||||
expanded.has(lesson.tutorialId) ? 'ph:caret-down-bold' : 'ph:caret-right-bold'
|
||||
"
|
||||
:width="12"
|
||||
class="muted"
|
||||
/>
|
||||
</span>
|
||||
<span class="lesson-line small muted num">
|
||||
<template v-if="lesson.viewCount">
|
||||
|
||||
@@ -650,7 +650,10 @@ onMounted(load)
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
.name-btn:hover {
|
||||
.name-btn :deep(.name) {
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
.name-btn:hover :deep(.name) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.c-num {
|
||||
|
||||
@@ -332,9 +332,12 @@ html.dark .page {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
a.c-title:hover .ptitle {
|
||||
a.c-title .ptitle {
|
||||
color: var(--learn-green-text);
|
||||
}
|
||||
a.c-title:hover .ptitle {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.pid {
|
||||
width: 34px;
|
||||
flex-shrink: 0;
|
||||
|
||||
@@ -219,10 +219,14 @@ const status = (row: CaseRow) => caseStatus(row, props.source)
|
||||
padding: 0;
|
||||
background: none;
|
||||
font: inherit;
|
||||
color: v-bind("theme.textColor3");
|
||||
color: v-bind("theme.primaryColor");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.more:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.was {
|
||||
color: v-bind("theme.warningColorPressed");
|
||||
}
|
||||
|
||||
@@ -35,7 +35,8 @@ const allColumns: DataTableColumn<AdminProblemRow>[] = [
|
||||
title: "题目",
|
||||
key: "title",
|
||||
minWidth: 200,
|
||||
render: (row) => h(NButton, { text: true, onClick: () => goEdit(row) }, () => row.title),
|
||||
render: (row) =>
|
||||
h(NButton, { text: true, type: "primary", onClick: () => goEdit(row) }, () => row.title),
|
||||
},
|
||||
{
|
||||
title: "学生看得到",
|
||||
|
||||
@@ -1160,7 +1160,13 @@ onMounted(async () => {
|
||||
:height="codeHeight(form.templates[lang].template, 4, 16)"
|
||||
placeholder="不写就用全站默认的"
|
||||
/>
|
||||
<n-button text size="small" class="hiddenToggle" @click="showHidden = !showHidden">
|
||||
<n-button
|
||||
text
|
||||
type="primary"
|
||||
size="small"
|
||||
class="hiddenToggle"
|
||||
@click="showHidden = !showHidden"
|
||||
>
|
||||
{{ showHidden ? "▾" : "›" }} 藏在学生代码前面 / 后面一起运行的代码(学生看不到)
|
||||
</n-button>
|
||||
<template v-if="showHidden">
|
||||
@@ -1671,7 +1677,7 @@ onMounted(async () => {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
font: inherit;
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -481,13 +481,12 @@ watch(() => [query.page, query.limit, query.author, query.kind, query.visible],
|
||||
}
|
||||
|
||||
.problem-table :deep(.title-link) {
|
||||
color: inherit;
|
||||
color: v-bind("theme.primaryColor");
|
||||
font-weight: 500;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.problem-table :deep(.title-link:hover) {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ watchDebounced(keyword, listTags, { debounce: 500, maxWait: 1000 })
|
||||
<div v-if="pendingTags.length" class="pending">
|
||||
<b>还没归类</b>
|
||||
<div v-for="tag in pendingTags" :key="tag.id" class="pending-item">
|
||||
<n-button text @click="openTagProblems(tag)">{{ tag.name }}</n-button>
|
||||
<n-button text type="primary" @click="openTagProblems(tag)">{{ tag.name }}</n-button>
|
||||
<span class="muted">{{ tag.problemCount }} 道</span>
|
||||
<n-button size="small" @click="changeCategory(tag, 'knowledge')">算知识点</n-button>
|
||||
<n-button size="small" @click="changeCategory(tag, 'theme')">算主题</n-button>
|
||||
@@ -257,12 +257,11 @@ watchDebounced(keyword, listTags, { debounce: 500, maxWait: 1000 })
|
||||
font: inherit;
|
||||
font-size: 15px;
|
||||
text-align: left;
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.name:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,11 @@ function edit(row: AdminProblemSet) {
|
||||
}
|
||||
|
||||
function renderTitle(row: AdminProblemSet) {
|
||||
return h(NButton, { text: true, onClick: () => edit(row) }, { default: () => row.title })
|
||||
return h(
|
||||
NButton,
|
||||
{ text: true, type: "primary", onClick: () => edit(row) },
|
||||
{ default: () => row.title },
|
||||
)
|
||||
}
|
||||
|
||||
function renderAssigned(row: AdminProblemSet) {
|
||||
|
||||
@@ -284,7 +284,7 @@ h2 {
|
||||
display: inline-block;
|
||||
margin-bottom: 12px;
|
||||
font-size: var(--oj-fs-sec);
|
||||
color: v-bind("theme.textColor3");
|
||||
color: v-bind("theme.primaryColor");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
@@ -513,13 +513,13 @@ const tab = ref<"weekly" | "dist">("weekly")
|
||||
max-width: 100%;
|
||||
font-size: var(--oj-fs-sec);
|
||||
font-weight: 600;
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.title a:hover,
|
||||
.m-title a:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.ell {
|
||||
|
||||
@@ -289,13 +289,13 @@ const medal = (index: number) => palette.value.medal[index]
|
||||
.name a {
|
||||
font-size: var(--oj-fs-sec);
|
||||
font-weight: 600;
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.name a:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.id {
|
||||
|
||||
@@ -467,7 +467,7 @@ function lastText(student: ClassBoardStudent) {
|
||||
<span v-if="board.assignedAt" class="assigned">
|
||||
{{ parseTime(board.assignedAt, "HH:mm") }} {{ board.assignedBy }} 布置
|
||||
</span>
|
||||
<n-button text class="edit" @click="editing = true">
|
||||
<n-button text type="primary" class="edit" @click="editing = true">
|
||||
<template #icon><Icon icon="ph:pencil-simple" /></template>
|
||||
{{ board.source === "teacher" ? "改" : "布置" }}
|
||||
</n-button>
|
||||
@@ -998,12 +998,12 @@ function lastText(student: ClassBoardStudent) {
|
||||
.panel-title {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: inherit;
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.panel-title:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.groups {
|
||||
|
||||
@@ -495,7 +495,11 @@ const columns = computed(() => {
|
||||
|
||||
.ph b {
|
||||
font-size: var(--oj-fs-sec);
|
||||
color: v-bind("theme.textColor2");
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
|
||||
.ph:hover b {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.ph span {
|
||||
|
||||
@@ -134,7 +134,7 @@ const shortcuts = computed(() =>
|
||||
<div class="card-head">
|
||||
<h3>公告</h3>
|
||||
<span class="spacer"></span>
|
||||
<router-link to="/announcement" class="muted">全部</router-link>
|
||||
<router-link to="/announcement" class="more">全部</router-link>
|
||||
</div>
|
||||
<router-link
|
||||
v-for="item in announcements"
|
||||
@@ -236,6 +236,16 @@ const shortcuts = computed(() =>
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.more {
|
||||
font-size: 14px;
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.more:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.minis {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@@ -252,6 +262,14 @@ const shortcuts = computed(() =>
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.mini b.num {
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
|
||||
.mini:hover b.num {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.mini i {
|
||||
display: block;
|
||||
height: 5px;
|
||||
|
||||
@@ -703,7 +703,7 @@ a.row:hover {
|
||||
|
||||
.more,
|
||||
.plain-link {
|
||||
color: inherit;
|
||||
color: #18a058;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -713,6 +713,6 @@ a.row:hover {
|
||||
|
||||
.more:hover,
|
||||
.plain-link:hover {
|
||||
color: #18a058;
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
@@ -297,7 +297,7 @@ function goCode() {
|
||||
<n-button text type="primary" size="small" @click="versionZoom = true">
|
||||
放大看
|
||||
</n-button>
|
||||
<n-button text size="small" @click="versionOpen = !versionOpen">
|
||||
<n-button text type="primary" size="small" @click="versionOpen = !versionOpen">
|
||||
{{ versionOpen ? "收起" : "展开" }}
|
||||
</n-button>
|
||||
</div>
|
||||
|
||||
@@ -272,7 +272,7 @@ const astRequirements = computed(() => Object.entries(problem.value?.astRequirem
|
||||
<n-button text type="primary" size="small" @click="myFlowchartZoom = true">
|
||||
放大看
|
||||
</n-button>
|
||||
<n-button text size="small" @click="myFlowchartOpen = !myFlowchartOpen">
|
||||
<n-button text type="primary" size="small" @click="myFlowchartOpen = !myFlowchartOpen">
|
||||
{{ myFlowchartOpen ? "收起" : "展开" }}
|
||||
</n-button>
|
||||
</div>
|
||||
|
||||
@@ -325,7 +325,7 @@ watch(query, () => {
|
||||
放回编辑器
|
||||
</n-button>
|
||||
<n-button size="small" @click="copy(row.id)">复制</n-button>
|
||||
<n-button size="small" text class="more" @click="openDetail(row.id)">
|
||||
<n-button size="small" text type="primary" class="more" @click="openDetail(row.id)">
|
||||
完整详情 ›
|
||||
</n-button>
|
||||
</div>
|
||||
@@ -499,12 +499,12 @@ watch(query, () => {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
font: inherit;
|
||||
color: v-bind("theme.textColor3");
|
||||
color: v-bind("theme.primaryColor");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.code-more:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.detail-actions {
|
||||
|
||||
@@ -169,11 +169,11 @@ const fresh = computed(() => props.progress.solved === 0)
|
||||
|
||||
.next b {
|
||||
font-weight: 600;
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
|
||||
.next:hover b {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.almost {
|
||||
@@ -181,7 +181,7 @@ const fresh = computed(() => props.progress.solved === 0)
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
font: inherit;
|
||||
color: v-bind("theme.textColor3");
|
||||
color: v-bind("theme.primaryColor");
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
@@ -189,7 +189,7 @@ const fresh = computed(() => props.progress.solved === 0)
|
||||
}
|
||||
|
||||
.almost:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.start {
|
||||
|
||||
@@ -10,6 +10,7 @@ const cache = new Map<string, Promise<ProblemRow[]>>()
|
||||
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia"
|
||||
import { useThemeVars } from "naive-ui"
|
||||
import { getSimilarProblems } from "oj/api"
|
||||
import { useProblemStore } from "oj/store/problem"
|
||||
|
||||
@@ -19,6 +20,8 @@ import { useProblemStore } from "oj/store/problem"
|
||||
*/
|
||||
const props = defineProps<{ title: string }>()
|
||||
|
||||
const theme = useThemeVars()
|
||||
|
||||
const { problem } = storeToRefs(useProblemStore())
|
||||
const list = ref<ProblemRow[]>([])
|
||||
|
||||
@@ -90,6 +93,7 @@ function difficultyType(difficulty: string) {
|
||||
}
|
||||
|
||||
.name {
|
||||
color: v-bind("theme.primaryColor");
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -152,7 +152,7 @@ const purple = { color: "#5b3fa8", background: "rgba(122, 95, 208, 0.12)" }
|
||||
<span v-if="progress?.isCompleted" class="done-mark" aria-hidden="true">✓</span>
|
||||
<div class="head">
|
||||
<div class="row">
|
||||
<router-link :to="{ name: 'problemsets' }" class="muted back">‹ 题单</router-link>
|
||||
<router-link :to="{ name: 'problemsets' }" class="back">‹ 题单</router-link>
|
||||
<h2 class="ell">{{ set.title }}</h2>
|
||||
<span v-if="set.assigning" class="pill assign"
|
||||
>布置到 {{ parseTime(set.assignedUntil!, "M月D日") }}</span
|
||||
@@ -367,9 +367,14 @@ const purple = { color: "#5b3fa8", background: "rgba(122, 95, 208, 0.12)" }
|
||||
.back {
|
||||
flex-shrink: 0;
|
||||
font-size: var(--oj-fs-sec);
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.back:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.count {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
|
||||
@@ -151,14 +151,13 @@ function shortLabel(className: string) {
|
||||
border: 0;
|
||||
background: none;
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.name:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ function threatNote(me: RankRow, behind: RankRow) {
|
||||
</div>
|
||||
<div v-if="minis.length" class="minis">
|
||||
<button v-for="mini in minis" :key="mini.label" class="mini" @click="mini.go">
|
||||
<span class="mini-label">{{ mini.label }}</span>
|
||||
<span class="mini-label">{{ mini.label }} ›</span>
|
||||
<b v-if="mini.rank && mini.cap && mini.rank > mini.cap">{{ mini.cap }} 名以外</b>
|
||||
<b v-else-if="mini.rank"
|
||||
>第 {{ mini.rank }}<small v-if="mini.total"> / {{ mini.total }}</small></b
|
||||
@@ -412,7 +412,7 @@ function threatNote(me: RankRow, behind: RankRow) {
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid rgba(24, 160, 88, 0.3);
|
||||
font-size: var(--oj-fs-sec);
|
||||
color: #2f6fd0;
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -303,10 +303,12 @@ function percent(value: number, total: number) {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
/* 横幅本身就是绿的,字再绿也看不出能点,靠下划线 */
|
||||
.live-link {
|
||||
color: inherit;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 3px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
@@ -522,12 +524,12 @@ function percent(value: number, total: number) {
|
||||
}
|
||||
|
||||
.hard-title a {
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hard-title a:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.mini {
|
||||
|
||||
@@ -65,10 +65,14 @@ watch(
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
color: v-bind("theme.textColor3");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.raw-toggle:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.raw {
|
||||
margin: 0;
|
||||
max-height: 140px;
|
||||
|
||||
@@ -446,6 +446,14 @@ const canRetry = computed(
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.user-link :deep(.name) {
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
|
||||
.user-link:hover :deep(.name) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.render-error {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -477,12 +485,16 @@ const canRetry = computed(
|
||||
}
|
||||
|
||||
.problem {
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.problem:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 只留漏斗图标(右栏六百来宽,带字的话名字、题目和按钮排不进一行),字在 title 里 */
|
||||
.filter-pill {
|
||||
flex: none;
|
||||
|
||||
@@ -460,10 +460,14 @@ function openStandalone() {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.user-link:hover :deep(.name) {
|
||||
.user-link :deep(.name) {
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
|
||||
.user-link:hover :deep(.name) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.who {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -476,7 +480,7 @@ function openStandalone() {
|
||||
}
|
||||
|
||||
.problem {
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@@ -484,7 +488,7 @@ function openStandalone() {
|
||||
}
|
||||
|
||||
.problem:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.problem-id {
|
||||
|
||||
@@ -431,10 +431,14 @@ function handleMore(key: string) {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.user-link:hover :deep(.name) {
|
||||
.user-link :deep(.name) {
|
||||
color: v-bind("theme.primaryColor");
|
||||
}
|
||||
|
||||
.user-link:hover :deep(.name) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.cls {
|
||||
height: 22px;
|
||||
padding: 0 8px;
|
||||
@@ -455,12 +459,12 @@ function handleMore(key: string) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-weight: 600;
|
||||
color: v-bind("theme.textColor1");
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.problem:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.problem-id {
|
||||
|
||||
@@ -106,6 +106,10 @@ h3 small {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.row:hover .name {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -114,6 +118,7 @@ h3 small {
|
||||
|
||||
.name {
|
||||
width: 72px;
|
||||
color: v-bind("theme.primaryColor");
|
||||
font-size: var(--oj-fs-sec);
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -214,7 +214,7 @@ function toggle() {
|
||||
background: transparent;
|
||||
font: inherit;
|
||||
font-size: 13px;
|
||||
color: v-bind("theme.textColor2");
|
||||
color: v-bind("theme.primaryColor");
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
@@ -222,7 +222,7 @@ function toggle() {
|
||||
}
|
||||
|
||||
.toggle:hover {
|
||||
color: v-bind("theme.primaryColor");
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.caret {
|
||||
|
||||
Reference in new issue
Block a user