Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Some widgets from the opposite side are visible on web with HTML renderer #86

Open
aemelyanovff opened this issue Jun 21, 2023 · 2 comments

Comments

@aemelyanovff
Copy link

aemelyanovff commented Jun 21, 2023

"Shadows" of some widgets, specifically ElevatedButton's, are visible from the opposite side of the card.

It seems to only happen on web when compiled in the --web-renderer html mode.

Expected Behavior

Widgets from the opposite side of the card should not be visible.

Current Behavior

"Shadows" of some widgets, specifically ElevatedButton's, are are visible from the opposite side of the card.

Possible Solution

N/A

Steps to Reproduce

  1. Copy the code from the official example (https://pub.dev/packages/flip_card/example).
  2. Add one ElevatedButton to one side.
  3. Run: flutter run -d chrome --web-renderer html

Full code (identical to the example except the ElevatedButton):

import 'package:flutter/material.dart';

import 'package:flip_card/flip_card.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'FlipCard',
      theme: ThemeData.dark(),
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  _renderBg() {
    return Container(
      decoration: BoxDecoration(color: const Color(0xFFFFFFFF)),
    );
  }

  _renderAppBar(context) {
    return MediaQuery.removePadding(
      context: context,
      removeBottom: true,
      child: AppBar(
        elevation: 0.0,
        backgroundColor: Color(0x00FFFFFF),
      ),
    );
  }

  _renderContent(context) {
    return Card(
      elevation: 0.0,
      margin: EdgeInsets.only(left: 32.0, right: 32.0, top: 20.0, bottom: 0.0),
      color: Color(0x00000000),
      child: FlipCard(
        direction: FlipDirection.HORIZONTAL,
        side: CardSide.FRONT,
        speed: 1000,
        onFlipDone: (status) {
          print(status);
        },
        front: Container(
          decoration: BoxDecoration(
            color: Color(0xFF006666),
            borderRadius: BorderRadius.all(Radius.circular(8.0)),
          ),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('Front', style: Theme.of(context).textTheme.headline1),
              Text('Click here to flip back',
                  style: Theme.of(context).textTheme.bodyText1),
            ],
          ),
        ),
        back: Container(
          decoration: BoxDecoration(
            color: Color(0xFF006666),
            borderRadius: BorderRadius.all(Radius.circular(8.0)),
          ),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('Back', style: Theme.of(context).textTheme.headline1),
              Text('Click here to flip front',
                  style: Theme.of(context).textTheme.bodyText1),
              ElevatedButton(onPressed: () {}, child: Text('My button')),
            ],
          ),
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('FlipCard'),
      ),
      body: Stack(
        fit: StackFit.expand,
        children: <Widget>[
          _renderBg(),
          Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              _renderAppBar(context),
              Expanded(
                flex: 4,
                child: _renderContent(context),
              ),
              Expanded(
                flex: 1,
                child: Container(),
              ),
            ],
          )
        ],
      ),
    );
  }
}

Screenshot (see the shadow above "Click here to flip back"):

Screenshot 2023-06-21 at 3 26 44 PM

Screenshot with CanvasKit (expected):

Screenshot 2023-06-21 at 3 27 27 PM

Context (Environment)

Can't use FlipCards with buttons on web.

Detailed Description

N/A

Possible Implementation

N/A

@JSlast
Copy link

JSlast commented Aug 6, 2023

Any update regarding this from Flip_card?

@ciriousjoker
Copy link
Collaborator

ciriousjoker commented Aug 10, 2023

@aemelyanovff
Does this also happen on previous versions of this package? There was a sizeable refactoring recently, perhaps that caused it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants