@@ -33,7 +33,8 @@ class MenuBar extends StatelessWidget {
3333 visibleWhen: [Condition .smallerThan (name: TABLET )],
3434 child: IconButton (
3535 onPressed: () {},
36- icon: Icon (Icons .menu, color: Color (0xFFF8F9FA ), size: 24 ),
36+ icon: Icon (Icons .menu,
37+ color: textWhiteDarkBackgroundColor, size: 24 ),
3738 ),
3839 ),
3940 ResponsiveVisibility (
@@ -44,7 +45,8 @@ class MenuBar extends StatelessWidget {
4445 padding: EdgeInsets .fromLTRB (0 , 8 , 0 , 8 ),
4546 child: Text (
4647 'Sign in' ,
47- style: TextStyle (fontSize: 14 , color: Color (0xFFF8F9FA )),
48+ style: TextStyle (
49+ fontSize: 14 , color: textWhiteDarkBackgroundColor),
4850 ),
4951 ),
5052 ),
@@ -59,7 +61,8 @@ class MenuBar extends StatelessWidget {
5961 children: [
6062 Text (
6163 'Help' ,
62- style: TextStyle (fontSize: 14 , color: Color (0xFFF8F9FA )),
64+ style: TextStyle (
65+ fontSize: 14 , color: textWhiteDarkBackgroundColor),
6366 ),
6467 Icon (Icons .keyboard_arrow_down,
6568 color: Color (0xFF757575 ), size: 18 ),
@@ -260,11 +263,15 @@ class MostPopular extends StatelessWidget {
260263 alignment: Alignment .centerRight,
261264 child: Padding (
262265 padding: EdgeInsets .only (right: 16 ),
263- child: Text ('VIEW ALL' ,
264- style: TextStyle (
265- color: linkColor,
266- fontSize: 16 ,
267- fontWeight: FontWeight .bold)),
266+ child: GestureDetector (
267+ onTap: () =>
268+ openUrl ('https://pub.dev/packages?sort=popularity' ),
269+ child: Text ('VIEW ALL' ,
270+ style: TextStyle (
271+ color: linkColor,
272+ fontSize: 16 ,
273+ fontWeight: FontWeight .bold)),
274+ ),
268275 ),
269276 ),
270277 ],
@@ -317,11 +324,14 @@ class TopFlutter extends StatelessWidget {
317324 alignment: Alignment .centerRight,
318325 child: Padding (
319326 padding: EdgeInsets .only (right: 16 ),
320- child: Text ('VIEW ALL' ,
321- style: TextStyle (
322- color: linkColor,
323- fontSize: 16 ,
324- fontWeight: FontWeight .bold)),
327+ child: GestureDetector (
328+ onTap: () => openUrl ('https://pub.dev/flutter/packages' ),
329+ child: Text ('VIEW ALL' ,
330+ style: TextStyle (
331+ color: linkColor,
332+ fontSize: 16 ,
333+ fontWeight: FontWeight .bold)),
334+ ),
325335 ),
326336 ),
327337 ],
@@ -394,11 +404,14 @@ class TopDart extends StatelessWidget {
394404 alignment: Alignment .centerRight,
395405 child: Padding (
396406 padding: EdgeInsets .only (right: 16 ),
397- child: Text ('VIEW ALL' ,
398- style: TextStyle (
399- color: linkColor,
400- fontSize: 16 ,
401- fontWeight: FontWeight .bold)),
407+ child: GestureDetector (
408+ onTap: () => openUrl ('https://pub.dev/dart/packages' ),
409+ child: Text ('VIEW ALL' ,
410+ style: TextStyle (
411+ color: linkColor,
412+ fontSize: 16 ,
413+ fontWeight: FontWeight .bold)),
414+ ),
402415 ),
403416 ),
404417 ],
@@ -451,3 +464,121 @@ class PackageCard extends StatelessWidget {
451464 );
452465 }
453466}
467+
468+ class Footer extends StatelessWidget {
469+ EdgeInsetsGeometry linkTextPadding =
470+ const EdgeInsets .symmetric (horizontal: 8 );
471+ Widget divider = const SizedBox (
472+ height: 18 ,
473+ child: const VerticalDivider (
474+ color: textWhiteDarkBackgroundColor,
475+ thickness: 1 ,
476+ ),
477+ );
478+ @override
479+ Widget build (BuildContext context) {
480+ return Container (
481+ width: double .infinity,
482+ color: backgroundColor,
483+ padding: EdgeInsets .fromLTRB (16 , 29 , 16 , 25 ),
484+ child: Wrap (
485+ alignment: WrapAlignment .center,
486+ runSpacing: 4 ,
487+ children: [
488+ GestureDetector (
489+ onTap: () => openUrl ('https://dart.dev/' ),
490+ child: Padding (
491+ padding: linkTextPadding,
492+ child: Text (
493+ 'Dart language' ,
494+ style: footerLinkTextStyle,
495+ ),
496+ ),
497+ ),
498+ divider,
499+ GestureDetector (
500+ onTap: () => openUrl ('https://pub.dev/policy' ),
501+ child: Padding (
502+ padding: linkTextPadding,
503+ child: Text (
504+ 'Policy' ,
505+ style: footerLinkTextStyle,
506+ ),
507+ ),
508+ ),
509+ divider,
510+ GestureDetector (
511+ onTap: () =>
512+ openUrl ('https://www.google.com/intl/en/policies/terms/' ),
513+ child: Padding (
514+ padding: linkTextPadding,
515+ child: Text (
516+ 'Terms' ,
517+ style: footerLinkTextStyle,
518+ ),
519+ ),
520+ ),
521+ divider,
522+ GestureDetector (
523+ onTap: () => openUrl ('https://pub.dev/security' ),
524+ child: Padding (
525+ padding: linkTextPadding,
526+ child: Text (
527+ 'Security' ,
528+ style: footerLinkTextStyle,
529+ ),
530+ ),
531+ ),
532+ divider,
533+ GestureDetector (
534+ onTap: () =>
535+ openUrl ('https://www.google.com/intl/en/policies/privacy/' ),
536+ child: Padding (
537+ padding: linkTextPadding,
538+ child: Text (
539+ 'Privacy' ,
540+ style: footerLinkTextStyle,
541+ ),
542+ ),
543+ ),
544+ divider,
545+ GestureDetector (
546+ onTap: () => openUrl ('https://pub.dev/help' ),
547+ child: Padding (
548+ padding: linkTextPadding,
549+ child: Text (
550+ 'Help' ,
551+ style: footerLinkTextStyle,
552+ ),
553+ ),
554+ ),
555+ divider,
556+ Padding (padding: EdgeInsets .only (right: 6 )),
557+ GestureDetector (
558+ onTap: () => openUrl ('https://pub.dev/feed.atom' ),
559+ child: Padding (
560+ padding: EdgeInsets .symmetric (horizontal: 6 ),
561+ child: ImageIcon (
562+ AssetImage ('assets/images/icon_rss_feed.png' ),
563+ color: textWhiteDarkBackgroundColor,
564+ size: 20 ,
565+ ),
566+ ),
567+ ),
568+ GestureDetector (
569+ onTap: () => openUrl (
570+ 'https://github.com/dart-lang/pub-dev/issues/new?body=URL%3A+https%3A%2F%2Fpub.dev%2F%0A%0A%3CDescribe+your+issue+or+suggestion+here%3E&title=%3CSummarize+your+issues+here%3E&labels=Area%3A+site+feedback' ),
571+ child: Padding (
572+ padding: EdgeInsets .symmetric (horizontal: 6 ),
573+ child: ImageIcon (
574+ AssetImage ('assets/images/icon_bug_report.png' ),
575+ color: textWhiteDarkBackgroundColor,
576+ size: 20 ,
577+ ),
578+ ),
579+ ),
580+ ],
581+ ),
582+ );
583+ }
584+ }
0 commit comments