书籍接口与界面

This commit is contained in:
DelLevin-Home
2026-06-24 19:51:35 +08:00
parent e4ed73d604
commit 5b7823cb78
20 changed files with 4552 additions and 361 deletions

View File

@@ -15,7 +15,7 @@ class CloudSyncPage extends StatelessWidget {
padding: const EdgeInsets.all(20),
children: [
_buildSectionTitle(colors, '选择备份方式'),
const SizedBox(height: 12),
const SizedBox(height: 10),
_buildOption(
colors: colors,
icon: Icons.storage_outlined,
@@ -24,7 +24,7 @@ class CloudSyncPage extends StatelessWidget {
onTap: () =>
Navigator.push(context, MaterialPageRoute(builder: (_) => const WebDAVSyncPage())),
),
const SizedBox(height: 28),
const SizedBox(height: 20),
_buildInfo(colors),
],
),
@@ -40,7 +40,7 @@ class CloudSyncPage extends StatelessWidget {
BoxDecoration(color: colors.primary, borderRadius: BorderRadius.circular(2))),
const SizedBox(width: 8),
Text(title,
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: colors.onSurface)),
style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600, color: colors.onSurface)),
]);
}
@@ -55,10 +55,10 @@ class CloudSyncPage extends StatelessWidget {
return GestureDetector(
onTap: enabled ? onTap : null,
child: Container(
padding: const EdgeInsets.all(18),
padding: const EdgeInsets.all(14),
decoration: BoxDecoration(
color: enabled ? colors.surface : colors.surfaceContainerHighest,
borderRadius: BorderRadius.circular(14),
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.03),
@@ -68,27 +68,27 @@ class CloudSyncPage extends StatelessWidget {
),
child: Row(children: [
Container(
width: 44,
height: 44,
width: 36,
height: 36,
decoration: BoxDecoration(
color: colors.surfaceContainerHighest, borderRadius: BorderRadius.circular(10)),
color: colors.surfaceContainerHighest, borderRadius: BorderRadius.circular(8)),
child: Icon(icon,
color: enabled
? colors.onSurface.withValues(alpha: 0.6)
: colors.onSurface.withValues(alpha: 0.3),
size: 22)),
const SizedBox(width: 14),
size: 20)),
const SizedBox(width: 12),
Expanded(
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Text(title,
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.w600,
fontSize: 13,
fontWeight: FontWeight.w500,
color: enabled ? colors.onSurface : colors.onSurface.withValues(alpha: 0.3))),
const SizedBox(height: 3),
const SizedBox(height: 2),
Text(subtitle,
style: TextStyle(
fontSize: 12,
fontSize: 11,
color: enabled
? colors.onSurface.withValues(alpha: 0.4)
: colors.onSurface.withValues(alpha: 0.25))),
@@ -104,10 +104,10 @@ class CloudSyncPage extends StatelessWidget {
Widget _buildInfo(ColorScheme colors) {
return Container(
padding: const EdgeInsets.all(18),
padding: const EdgeInsets.all(14),
decoration: BoxDecoration(
color: colors.surface,
borderRadius: BorderRadius.circular(14),
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.03),
@@ -118,8 +118,8 @@ class CloudSyncPage extends StatelessWidget {
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Row(children: [
Container(
width: 36,
height: 36,
width: 32,
height: 32,
decoration: BoxDecoration(
color: colors.surfaceContainerHighest, borderRadius: BorderRadius.circular(8)),
child: Icon(Icons.info_outline,
@@ -127,9 +127,9 @@ class CloudSyncPage extends StatelessWidget {
const SizedBox(width: 10),
Text('使用说明',
style: TextStyle(
fontSize: 14, fontWeight: FontWeight.w600, color: colors.onSurface)),
fontSize: 13, fontWeight: FontWeight.w500, color: colors.onSurface)),
]),
const SizedBox(height: 14),
const SizedBox(height: 12),
_infoItem(colors, 'WebDAV 备份:将数据备份到支持 WebDAV 的云盘'),
const SizedBox(height: 8),
_infoItem(colors, '建议定期备份到本地或云盘'),