flutter-ci / test (push) Canceled after 0s
- Drama 新增 coverLandscape,WatchProgress 新增 dramaCoverLandscape - 继续观看横幅优先使用横版封面,缺省回退竖版 - 底部导航栏图标与文字间距由 5dp 收紧至 1dp
302 lines
13 KiB
Dart
302 lines
13 KiB
Dart
// Author: fruit.com.cn
|
|
|
|
/// 跨页面复用的间距、字号、圆角和控件尺寸。
|
|
abstract final class AppDimens {
|
|
static const double spaceXs = 4;
|
|
static const double spaceSm = 8;
|
|
static const double spaceMd = 12;
|
|
static const double spaceLg = 16;
|
|
static const double spaceXl = 24;
|
|
|
|
static const double pageHorizontal = 16;
|
|
static const double cardRadius = 12;
|
|
static const double authCardRadius = 12;
|
|
static const double cardPadding = 16;
|
|
static const double innerRadius = 10;
|
|
static const double innerPadding = 12;
|
|
static const double pillRadius = 999;
|
|
static const double glassSmallRadius = 12;
|
|
static const double glassRadius = 12;
|
|
static const double glassCardRadius = 12;
|
|
static const double buttonRadius = 10;
|
|
static const double inputRadius = 10;
|
|
static const double chipRadius = 6;
|
|
static const double coverRadius = 12;
|
|
static const double sheetRadius = 12;
|
|
|
|
static const double caption = 12;
|
|
static const double emptyStateSubtitle = 12.5;
|
|
static const double emptyStateAction = 13;
|
|
static const double body = 14;
|
|
static const double listTitle = 15;
|
|
static const double sectionTitle = 16;
|
|
static const double pageTitle = 20;
|
|
static const double detailHeadline = 24;
|
|
static const double detailHeadlineSmall = 18;
|
|
static const double previewCardTitle = 13;
|
|
static const double previewSectionTitle = 14;
|
|
static const double chipFont = 10;
|
|
static const double navLabel = 13;
|
|
static const double navLabelGap = 1;
|
|
|
|
static const double buttonHeight = 48;
|
|
static const double primaryButtonHeight = 52;
|
|
static const double buttonCompact = 32;
|
|
static const double buttonSmall = 34;
|
|
static const double buttonMedium = 40;
|
|
static const double buttonLarge = 44;
|
|
static const double tapTarget = 44;
|
|
static const double contentHeaderHeight = 46;
|
|
|
|
static const double navHeight = 62;
|
|
static const double navIcon = 30;
|
|
static const double progressHeight = 3;
|
|
static const double progressRadius = 2;
|
|
static const double progressLineHeight = 3;
|
|
static const double refreshIndicatorSize = 40;
|
|
static const double refreshIndicatorRadius = 20;
|
|
static const double refreshSpinnerSize = 20;
|
|
static const double refreshSpinnerStroke = 2;
|
|
static const double loadMoreIndicatorHeight = 40;
|
|
|
|
static const double searchHeight = 40;
|
|
static const double searchRadius = 8;
|
|
static const double searchPlaceholderFont = 13;
|
|
static const double searchResultGap = 12;
|
|
static const double searchResultRowGap = 16;
|
|
static const double searchResultTitleGap = 8;
|
|
static const double searchResultMetaGap = 6;
|
|
static const double searchResultMetaFont = 12;
|
|
static const double searchResultTextExtent = 68;
|
|
static const double navDot = 3;
|
|
static const double glassBlur = 24;
|
|
|
|
static const double accountCardHeight = 64;
|
|
static const double accountIcon = 18;
|
|
static const double accountLabel = 11;
|
|
|
|
static const double watchPlaceholderHeight = 114;
|
|
static const double heroBannerHeight = 240;
|
|
static const double heroBannerRadius = 12;
|
|
static const double heroTitle = 28;
|
|
static const double heroSubtitle = 14;
|
|
|
|
static const double cardMeta = 12;
|
|
static const double cardViews = 11;
|
|
static const double cardTitle = 15;
|
|
static const double cardShadowBlur = 0;
|
|
static const double cardShadowY = 0;
|
|
|
|
/// 首页探索网格。
|
|
static const double feedPageHorizontal = 14;
|
|
static const double homeGridGap = 6;
|
|
static const double homeGridRowGap = 10;
|
|
static const double homeCardRadius = 6;
|
|
static const double cardCoverRadius = 8;
|
|
static const double homeCardPadding = 8;
|
|
static const double cardTitleFont = 15;
|
|
static const double cardTitleLineHeight = 1.3;
|
|
static const double cardViewsFont = 11;
|
|
static const double cardViewsIcon = 11;
|
|
static const double cardPlayCountFont = 12;
|
|
static const double cardPlayCountGap = 4;
|
|
static const double cardPlayCountBottom = 2;
|
|
static const double cardPlayCountRight = 6;
|
|
static const double cardPlayCountScrimHeight = 32;
|
|
static const double cardGenreRibbonHeight = 16;
|
|
static const double cardGenreRibbonLeftInset = 4;
|
|
static const double coverBadgeRibbonHorizontalPadding = 4;
|
|
static const double cardTagFont = 11;
|
|
static const double cardBadgeFont = 9;
|
|
static const double cardCoverTitleGap = 6;
|
|
static const double cardTitleTagGap = 6;
|
|
static const double skeletonBarHeight = 10;
|
|
static const double skeletonBarRadius = 4;
|
|
static const double skeletonBarGap = 4;
|
|
static const double skeletonTitleBarGap = 3;
|
|
static const double skeletonBodyExtent = 34;
|
|
static const double cardCoverAspectRatio = 3 / 4;
|
|
static const double homeCardBodyExtent = 84;
|
|
static const double homePrimaryTabFont = 18;
|
|
static const double homePrimaryTabSelectedFont = 20;
|
|
static const double homePrimaryRowHeight = 30;
|
|
static const Duration homePrimaryTabAnimationDuration = Duration(
|
|
milliseconds: 180,
|
|
);
|
|
static const double homeSecondaryTagFont = 15;
|
|
static const double homeSecondaryTagHeight = 26;
|
|
static const double homeSecondaryTagHorizontalPadding = 8;
|
|
static const double homeSecondaryTagRadius = 13;
|
|
static const Duration homeSecondaryTagAnimationDuration = Duration(
|
|
milliseconds: 150,
|
|
);
|
|
static const double homeSecondaryFilterGap = 6;
|
|
static const double homeSecondaryFilterVisualSize = 26;
|
|
static const double homeSecondaryFilterIcon = 16;
|
|
static const double homeSecondaryFilterStroke = 1.7;
|
|
static const double homePrimaryCategoryGap = 24;
|
|
static const double homeSecondaryTagGap = 10;
|
|
static const double homeSearchTopGap = 0;
|
|
static const double homeSearchPrimaryGap = 8;
|
|
static const double homePrimarySecondaryGap = 8;
|
|
static const double homeSecondaryGridGap = 10;
|
|
static const double homeHeaderIcon = 22;
|
|
static const double homeActionSlot = 40;
|
|
static const double homeActionIcon = 30;
|
|
static const double homeActionGap = 6;
|
|
|
|
/// 推荐分区。
|
|
static const double recommendSectionGap = 12;
|
|
static const double recommendSectionTitle = 17;
|
|
static const double recommendSectionSubtitle = 11;
|
|
static const double recommendSectionMore = 12;
|
|
// 封面 122*(4/3)≈163 + 间距6 + 两行标题≈42 + 间距6 + 标签≈13 ≈ 230,留 6 余量。
|
|
static const double recommendRowHeight = 236;
|
|
static const double recommendCardWidth = 122;
|
|
|
|
/// 首页热播榜。
|
|
static const double rankingHeroTitle = 22;
|
|
static const double rankingHeroSubtitle = 11;
|
|
static const double rankingPodiumChampionWidth = 110;
|
|
static const double rankingPodiumChampionHeight = 146;
|
|
static const double rankingPodiumWidth = 92;
|
|
static const double rankingPodiumHeight = 122;
|
|
static const double rankingPodiumRadius = 10;
|
|
static const double rankingRowHeight = 96;
|
|
static const double rankingNumberWidth = 56;
|
|
static const double rankingNumberFont = 48;
|
|
static const double rankingCoverWidth = 60;
|
|
static const double rankingCoverHeight = 80;
|
|
static const double rankingCoverRadius = 6;
|
|
|
|
/// 全部短剧筛选与追剧双列。
|
|
static const double filterChipFont = 16;
|
|
static const double filterChipHeight = 28;
|
|
static const double filterChipRadius = 14;
|
|
static const double filterChipHorizontalPadding = 12;
|
|
static const double filterRowGap = 6;
|
|
static const double filterItemGap = 10;
|
|
static const double allDramasHorizontal = 12;
|
|
static const double allDramasGridGap = 6;
|
|
static const double allDramasGridRowGap = 6;
|
|
static const double allDramasFilterToGridGap = 12;
|
|
static const double followingHeaderHeight = 52;
|
|
static const double followingTabFont = 18;
|
|
static const double followingTabGap = 24;
|
|
static const double followingEditIconSize = 20;
|
|
static const double followingEditHitSize = 40;
|
|
static const double followingAddIconSize = 20;
|
|
static const double followingAddIconStroke = 1.5;
|
|
static const double followingGridGap = 6;
|
|
static const double followingGridRowGap = 12;
|
|
|
|
/// 追剧网格卡文字区:间距 6 + 两行剧名 16*1.3*2=41.6 ≈ 48,留 4 余量。
|
|
static const double followingCardTextExtent = 52;
|
|
static const double followingSubtitleFont = 12;
|
|
static const double followingSubtitleGap = 4;
|
|
static const double followingProgressHeight = 2;
|
|
static const double followingHistoryCoverWidth = 96;
|
|
static const double followingHistoryCoverHeight = 128;
|
|
static const double followingHistoryCoverRadius = 6;
|
|
static const double followingHistoryContentGap = 12;
|
|
static const double followingHistoryRowGap = 16;
|
|
static const double followingHistoryProgressHeight = 3;
|
|
static const double followingHistoryProgressRadius = 2;
|
|
static const double followingHistoryProgressGap = 8;
|
|
static const double followingHistoryLabelGap = 4;
|
|
static const double followingHistoryActionHeight = 28;
|
|
|
|
/// 追剧页新版头部与收藏布局。
|
|
static const double followingTitleFont = 26;
|
|
static const double followingTitleRowHeight = 42;
|
|
static const double followingTitleTopGap = 8;
|
|
static const double followingSearchIcon = 26;
|
|
static const double followingManageFont = 16;
|
|
static const double followingHeaderActionGap = 8;
|
|
static const double followingSegmentFont = 16;
|
|
static const double followingSegmentGap = 28;
|
|
static const double followingSegmentRowHeight = 42;
|
|
static const double followingSegmentIndicatorWidth = 24;
|
|
static const double followingSegmentIndicatorHeight = 3;
|
|
static const double followingSegmentIndicatorRadius = 2;
|
|
static const double followingSegmentIndicatorTopGap = 6;
|
|
static const double followingBannerHeight = 176;
|
|
static const double followingBannerRadius = 16;
|
|
static const double followingBannerEdgeGap = 16;
|
|
static const double followingBannerInnerGap = 16;
|
|
static const double followingBannerTitleFont = 22;
|
|
static const double followingBannerSubtitleFont = 13;
|
|
static const double followingBannerMetaGap = 8;
|
|
static const double followingBannerButtonHeight = 40;
|
|
static const double followingBannerButtonRadius = 20;
|
|
static const double followingBannerButtonFont = 15;
|
|
static const double followingBannerButtonIcon = 18;
|
|
static const double followingBannerButtonGap = 6;
|
|
static const double followingBannerButtonHorizontalPadding = 20;
|
|
static const double followingBannerButtonTopGap = 14;
|
|
static const double followingBannerProgressHeight = 3;
|
|
static const double followingSectionTitleFont = 16;
|
|
static const double followingSectionCountFont = 13;
|
|
static const double followingSectionTopGap = 20;
|
|
static const double followingSectionBottomGap = 12;
|
|
static const double followingCardTitleFontNew = 16;
|
|
static const double followingCardSubtitleFontNew = 13;
|
|
static const double followingBadgeFont = 11;
|
|
static const double followingBadgeRadius = 6;
|
|
static const double followingBadgeInset = 8;
|
|
static const double followingBadgePaddingH = 8;
|
|
static const double followingBadgePaddingV = 3;
|
|
static const Duration followingTabAnimationDuration = Duration(
|
|
milliseconds: 180,
|
|
);
|
|
static const Duration followingPageAnimationDuration = Duration(
|
|
milliseconds: 220,
|
|
);
|
|
|
|
/// 「我的」页中性视觉。
|
|
static const double mineCardRadius = 16;
|
|
static const double mineSectionTitle = 15;
|
|
static const double mineAvatar = 64;
|
|
static const double mineUserName = 24;
|
|
static const double mineUserNameLineHeight = 1.15;
|
|
static const double mineUserNameUidGap = 2;
|
|
static const double mineUid = 12;
|
|
static const double mineUidRowHeight = 16;
|
|
static const double mineCopyIcon = 14;
|
|
static const double mineGridHorizontal = 14;
|
|
static const double mineGridRadius = 12;
|
|
static const double mineGridCellHeight = 96;
|
|
static const double mineGridIconSurface = 44;
|
|
static const double mineGridIcon = 22;
|
|
static const double mineGridLabel = 12;
|
|
static const double mineGridDividerWidth = 1;
|
|
static const double mineSectionTitleFont = 16;
|
|
static const double mineSectionLinkFont = 12;
|
|
static const double mineSectionGap = 12;
|
|
|
|
/// 「我的」页新版:快捷图标行与服务列表。
|
|
static const double mineQuickActionIcon = 28;
|
|
static const double mineQuickActionLabelFont = 14;
|
|
static const double mineQuickActionGap = 8;
|
|
static const double mineServiceRowHeight = 56;
|
|
static const double mineServiceIcon = 24;
|
|
static const double mineServiceTitleFont = 16;
|
|
static const double mineServiceValueFont = 14;
|
|
static const double mineVipBenefitFont = 14;
|
|
static const double mineVipBenefitIcon = 20;
|
|
static const double mineVipBenefitBox = 30;
|
|
static const double mineVipBenefitBoxRadius = 7;
|
|
static const double mineVipBenefitGlyph = 17;
|
|
static const double mineVipBenefitRowGap = 4;
|
|
static const double mineVipButtonHeight = 36;
|
|
static const double mineContinueCardWidth = 96;
|
|
static const double mineContinueRowHeight = 172;
|
|
static const double mineContinueTitleFont = 13;
|
|
static const double mineContinueMetaFont = 11;
|
|
static const double mineStatsValueFont = 18;
|
|
static const double mineStatsLabelFont = 11;
|
|
static const double minePanelPadding = 12;
|
|
static const double mineMoreRowHeight = 52;
|
|
static const double mineMoreFont = 15;
|
|
}
|