Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.

Overview

Android Arsenal   Maven Central   JitPack   Dropbox   Can I drop Jetifier?

Twitter

Carbon

Material Design implementation for Android 4.0 and newer. This is not the exact copy of the Lollipop's API and features. It's a custom implementation of the most useful things as shown in the design specification. Carbon tries to:

  • make things easier (specify cornerRadius='dp' instead of creating an xml and/or a ViewOutlineProvider)
  • make it all work and look the same on all APIs (like CheckBox's left padding)
  • really backport features (don't use gradients for shadows!)
  • fix Android's everlasting bugs (FrameLayout ignores child's padding when no gravity is set)

What's new

  • custom item layouts for BottomNavigationView, TabLayout and NavigationView
  • DayNight themes
  • updated control colors
  • fixed color animations, background tint, menu inflation, shadow transformations

Features

Android 4.x
  • generated, animated shadows with elevation system
  • the touch ripple
  • rounded corners with content clipping
  • circular reveal
  • theme xml attribute
  • widget and drawable tinting
  • font resources
  • edge effects
All APIs
  • simple to use xml attributes for stroke, cut corners, rounded corners and ripples
  • colored shadows
  • brightness/saturation fade
  • SVG support (with transformations, text, gradients, etc.)
Useful extensions and bugfixes
  • html text
  • percent layouts, anchors, colored insets
  • view stroke
  • visibility animations
  • color state animations
  • ttf/otf fonts
  • text auto size
  • TextMarker
Material constants, widgets and components
  • colors, dimensions, typography
  • ready-to-use rows and adapters for RecyclerView
  • DropDown, FloatingActionMenu, RangeSeekBar, ExpandableRecyclerView, FlowLayout, TableView, BackdropLayout, Banner, BottomNavigationView, TabLayout

Samples

Installation

FAQ

Changelog

JavaDoc

Articles

License

Copyright 2015 Marcin Korniluk 'Zielony'

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • RecyclerView EdgeEffect drawn below children

    RecyclerView EdgeEffect drawn below children

    I use this library in my app. I have also set the overscroll mode to always but still edgeeffect is not working. Library - https://github.com/h6ah4i/android-advancedrecyclerview

    bug 
    opened by Teja-Konjeti 23
  • Borderless Ripple not being rendered when setRippleDrawable is called Multiple Times

    Borderless Ripple not being rendered when setRippleDrawable is called Multiple Times

    The Borderless Ripple being rendered by your library for ImageButton (FloatingActionButton in your library) is much smaller than the ripple rendered by android system.

    bug 
    opened by Teja-Konjeti 17
  • Shadows being cut when using a LinearLayout parent

    Shadows being cut when using a LinearLayout parent

    I created a custom TextInput widget.

    It is a LinearLayout, with a FrameLayout inside it. The shadow is set to the FrameLayout inside it. And there are TextViews on top and bottom of the FrameLayout

    It works fine with Padding set to the parent of this TextInput widget when extending android.widget.LinearLayout, but when I make it extend carbon.widget.LinearLayout the shadows of the FrameLayout inside it get cut by the padding. Even though the parent of everything is a carbon.widget.LinearLayout

    I have set

    clipChildren = false
    clipToPadding = false
    clipToOutline = false
    

    On both the TextInput, the FrameLayout, and the parent LinearLayout. But it's still the same behavior

    bug 
    opened by ahmaducg 15
  • Shadow works not well

    Shadow works not well

    Hi, Zielony, I am luckly to use the Carbon project, but I missing the problem that the shadow was works not very well, below is my ui, that page is maked by copy your sample app's activity_shadow.xml file and I delete the last line to avoid some issues (it's not important).

    Looking forward to your help~ Thank you very much~

    TIM截图20190812185420

    help wanted 
    opened by codingCavalier 15
  • Carbon CardView Shadow Does Not Appear in Pre Lollipop Devices

    Carbon CardView Shadow Does Not Appear in Pre Lollipop Devices

    I am using Carbon to create Shadow by using it's Elevation property

    This CardView is used as RecyclerView Item view holder. In Lollipop devices, the shadow appears, but it doesn't in Jellybean devices.

    <carbon.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/cardView"
        android:background="@color/WHITE_COLOR"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        app:carbon_colorBackground="@color/WHITE_COLOR"
        app:carbon_cornerRadius="@dimen/CORNER_RADIUS"
        app:carbon_elevation="3dp">
    
    </carbon.widget.CardView>
    

    Anything I am missing here?

    help wanted 
    opened by Jayvd 14
  • Invisible checkbox and ProgressBar

    Invisible checkbox and ProgressBar

    I've updated from 0.11.0 version to 0.12.0 and I don't why, boxes from checkboxes doesn't show up on Android 5.x and over.

    error2

    error3

    If I downgrade back to 0.11.0, then checkboxes works fine.

    bug help wanted 
    opened by HectorFGarcia 13
  • Update ripple animation to Android 5.1's

    Update ripple animation to Android 5.1's

    The default ripple effect is slightly different in Android 5.1. The ripple moves outwards faster and seems to not slow down (as much) as it reaches the edges like it did in 5.0. I think that's the only difference. It would be nice to have it match the new behavior.

    enhancement 
    opened by DSteve595 12
  • Android dependency 'com.android.support.constraint:constraint-layout' has different version for the compile (1.0.2) and runtime (1.1.0) classpath. You should manually set the same version via DependencyResolution

    Android dependency 'com.android.support.constraint:constraint-layout' has different version for the compile (1.0.2) and runtime (1.1.0) classpath. You should manually set the same version via DependencyResolution

    Android dependency 'com.android.support.constraint:constraint-layout' has different version for the compile (1.0.2) and runtime (1.1.0) classpath. You should manually set the same version via DependencyResolution

    help wanted 
    opened by SephirothLT 11
  • MultiDex problem

    MultiDex problem

    When I add this two lines:

    renderscriptTargetApi 20 renderscriptSupportModeEnabled true

    I'm having this problem:

    Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.

    java.util.zip.ZipException: duplicate entry: android/support/annotation/Keep.class

    What can I do to prevent that. I can't turn multiDex off.

    bug keep in mind 
    opened by HectorFGarcia 11
  • Using Carbon's FrameLayout as a container for fragments results in an ArrayIndexOutOfBoundsException

    Using Carbon's FrameLayout as a container for fragments results in an ArrayIndexOutOfBoundsException

    Using 0.7.2.

    I have (in a DrawerLayout, though I don't think it matters) a carbon.widget.FrameLayout that I'm using as a container for FragmentTransactions. I do this in my activity:

    getSupportFragmentManager().beginTransaction()
                            .disallowAddToBackStack()
                            .replace(R.id.content, fragment)
                            .commit();
    

    Here's my layout:

    <carbon.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/*removed*"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false"
        android:fitsSystemWindows="true">
    
        <carbon.widget.FrameLayout
            android:id="@+id/content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <carbon.widget.ScrimInsetsLayout
            android:id="@+id/*removed*"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="@android:color/white"
            android:fitsSystemWindows="true"
            app:carbon_elevation="4dp"
            app:carbon_insetForeground="#4000">
    
            <fragment
                android:id="@+id/fragment_drawer"
                android:name="*removed*.DrawerFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:layout="@layout/wallet_drawer" />
        </carbon.widget.ScrimInsetsLayout>
    </carbon.widget.DrawerLayout>
    

    The first fragment transaction works fine. However, a subsequent one gives the following crash:

        java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3195)
                at carbon.widget.FrameLayout.dispatchDraw(FrameLayout.java:100)
                at android.view.View.draw(View.java:15117)
                at android.widget.FrameLayout.draw(FrameLayout.java:592)
                at carbon.widget.FrameLayout.draw(FrameLayout.java:236)
                at android.view.View.updateDisplayListIfDirty(View.java:14048)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.View.draw(View.java:14838)
                at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
                at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1086)
                at carbon.widget.DrawerLayout.drawChild(DrawerLayout.java:168)
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
                at carbon.widget.DrawerLayout.dispatchDraw(DrawerLayout.java:99)
                at android.view.View.draw(View.java:15117)
                at carbon.widget.DrawerLayout.draw(DrawerLayout.java:235)
                at android.view.View.updateDisplayListIfDirty(View.java:14048)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.View.draw(View.java:14838)
                at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
                at android.view.View.updateDisplayListIfDirty(View.java:14043)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.View.draw(View.java:14838)
                at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
                at android.view.View.updateDisplayListIfDirty(View.java:14043)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.View.draw(View.java:14838)
                at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
                at android.view.View.updateDisplayListIfDirty(View.java:14043)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.View.draw(View.java:14838)
                at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
                at android.view.View.updateDisplayListIfDirty(View.java:14043)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.View.draw(View.java:14838)
                at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
                at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
                at android.view.View.draw(View.java:15117)
                at android.widget.FrameLayout.draw(FrameLayout.java:592)
                at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2595)
                at android.view.View.updateDisplayListIfDirty(View.java:14048)
                at android.view.View.getDisplayList(View.java:14071)
                at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:266)
                at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:272)
                at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:311)
                at android.view.ViewRootImpl.draw(ViewRootImpl.java:2492)
                at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2337)
                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1968)
                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
                at android.view.Choreographer.doCallbacks(Choreographer.java:580)
                at android.view.Choreographer.doFrame(Choreographer.java:550)
                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
                at android.os.Handler.handleCallback(Handler.java:739)
                at android.os.Handler.dispatchMessage(Handler.java:95)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5221)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    

    Simply changing the carbon.widget.FrameLayout to a regular Android FrameLayout, with no other changes, fixes the issue.

    My guess is it's something to do with the z-ordering Carbon does, but I'm not sure.

    This isn't catastrophic for my case as using a regular FrameLayout is fine, but it could impede the use of shadows in some other cases.

    bug 
    opened by DSteve595 11
  • Data Binding error after adding carbon

    Data Binding error after adding carbon

    e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.support.v7.widget.CardView. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/shop_pack_detail.xml loc:16:30 - 16:73 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_settings_list_item.xml loc:16:26 - 16:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.LinearLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/conv_empty_search_view.xml loc:13:30 - 13:73 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_shop_input_v2.xml loc:11:30 - 11:73 loc:23:38 - 23:81 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.LinearLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout-land/search_empty_view.xml loc:10:26 - 10:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.LinearLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/search_empty_view.xml loc:12:30 - 12:73 ****\ data binding error ****
    ****/ data binding error ****msg:Could not resolve handler::onAddNameClick as a listener. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/profile_fragment.xml loc:91:39 - 91:61 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_shop_v2.xml loc:10:26 - 10:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:src' with parameter type android.graphics.drawable.Drawable on android.widget.ImageView. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/view_my_points.xml loc:24:23 - 24:127 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.LinearLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_shop_download_failed.xml loc:11:26 - 11:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.support.constraint.ConstraintLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/shop_pack_detail_v2.xml loc:26:34 - 26:77 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.FrameLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/pack_preview_not_allowed.xml loc:12:26 - 12:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:onClick' with parameter type lambda on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/mute_by_member_fragment.xml loc:25:27 - 25:71 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.TextView. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/view_campaign.xml loc:42:38 - 42:91 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_shop.xml loc:10:26 - 10:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.LinearLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/share_container.xml loc:11:26 - 11:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.FrameLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_settings.xml loc:16:26 - 16:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.LinearLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_shop_loading.xml loc:10:26 - 10:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.support.constraint.ConstraintLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/shop_input_layout.xml loc:15:30 - 15:73 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:onClick' with parameter type lambda on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/mute_by_time_fragment.xml loc:42:27 - 42:75 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/pack_preview.xml loc:17:30 - 17:73 loc:37:34 - 37:77 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.view.View. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/all_updated_message.xml loc:11:26 - 11:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.view.View. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout-land/all_updated_message.xml loc:10:26 - 10:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:onClick' with parameter type lambda on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/custom_mute_fragment.xml loc:49:27 - 49:71 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:src' with parameter type android.graphics.drawable.StateListDrawable on com.bsb.hike.core.view.RecyclingImageView. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/sticker_shop_list_item.xml loc:38:27 - 38:113 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.widget.RelativeLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/hikelistactivity.xml loc:9:26 - 9:69 ****\ data binding error ****
    ****/ data binding error ****msg:Cannot find the setter for attribute 'android:background' with parameter type int on android.support.constraint.ConstraintLayout. file:/Users/devrajchouhan/AndroidStudioProjects/MyApplication/android-client/app/src/main/res/layout/hike_navigation_layout.xml loc:26:30 - 26:73 ****\ data binding error ****
    
    opened by devrajhike 10
  • A Carbon app is not inspectable with the Layout Inspector

    A Carbon app is not inspectable with the Layout Inspector

    Steps to reproduce:

    1. Run the sample Carbon application on an API 33 emulator
    2. In Android Studio: Open the Layout Inspector and connect to the app
    3. Select LinearLayout in the component tree of the Layout Inspector

    Exception seen in logcat: tk.zielony.carbonsamples E Inspector layoutinspector.view.inspection crashed java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.res.ColorStateList.getDefaultColor()' on a null object reference at carbon.widget.LinearLayout.getOutlineAmbientShadowColor(LinearLayout.java:788) at android.view.View$InspectionCompanion.readProperties(View$InspectionCompanion.java:768) at android.view.View$InspectionCompanion.readProperties(View$InspectionCompanion.java:18) at com.android.tools.agent.appinspection.proto.property.PropertyCache$Data.readProperties(PropertyCache.kt:44) at com.android.tools.agent.appinspection.proto.ViewExtensionsKt.createPropertyGroupImpl(ViewExtensions.kt:223) at com.android.tools.agent.appinspection.proto.ViewExtensionsKt.createPropertyGroup(ViewExtensions.kt:191) at com.android.tools.agent.appinspection.proto.ViewExtensionsKt.createGetPropertiesResponse(ViewExtensions.kt:181) at com.android.tools.agent.appinspection.ViewLayoutInspector$handleGetProperties$1$1.run(ViewLayoutInspector.kt:788) at com.android.tools.agent.app.inspection.concurrent.HandlerThreadExecutor$SafeHandler.dispatchMessage(HandlerThreadExecutor.java:71) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67)

    This is because carbon.widget.LinearLayout.getOutlineAmbientShadowColor is dereferencing the ambitneShadowColor unconditionally when it is null.

    opened by jlauridsen 0
  • Views with corner didn't show up in some devices

    Views with corner didn't show up in some devices

    Hello, I am using this amazing library in my app but I am facing a problem. in some devices e.g. galaxy Tab A with android version 11 a view with corners on both sides or three sides didn't show up, but a view with corners for all sides show up well. any help, please?

    opened by devabir93 3
  • Check ProGuard rules and update installation guide for 0.16.0.1 and master's head.

    Check ProGuard rules and update installation guide for 0.16.0.1 and master's head.

    Data binding enabling has been removed from wiki: https://github.com/ZieIony/Carbon/wiki/Installation/_compare/91c996c21d10d6a392ececfe7f27f94b50d2f699...533c5ddd5f0f04b11d91228ca8e8ac7f00fbcc6d

    However, related proguard rules are still listed:

    -dontwarn android.databinding.**
    -keep class android.databinding.** { *; }
    

    Is it somehow intended? Or they are redundant? BTW why don't embed consumer proguard rules?

    opened by koral-- 1
Releases(0.11.0)
  • 0.11.0(Nov 30, 2015)

    • updated build config,
    • fixed anchorGravity bug,
    • fixed svg bugs,
    • added Toolbar::getIcon/getIconView methods,
    • fixed visibility animation system,
    • fixed TransitionLayout touches,
    • added swipe to remove to RecyclerView in samples,
    • added Toolbar sample,
    • added EditText selection menu,
    • added tint to VectorDrawable,
    • added rounded corners and shadows to TextView,
    • added Lollipop handles to EditText,
    • updated samples,
    • fixed some preview errors,
    • added 'text' attribute to Toolbar,
    • fixed issue with inline Toolbar title textColor,
    • fixed wrong EditorMenu position,
    • style changes,
    • theme for EditorMenu and Snackbar,
    • updated EditorMenu,
    • updated SeekBar and RangeSeekBar,
    • fixed issue with drawing error messages before first interaction,
    • added icon attr for Toolbar,
    • added matchingView & validate listener for EditText,
    • fixed isValid method in EditText,
    • EditText uses carbon_errorColor,
    • requestDisallowInterceptTouchEvent for seek bars,
    • fixed BadParcelableException,
    • added getSelectedIndex, Spinner listener, SaveState & popup background to Spinner,
    • tablet support,
    • added color swatches,
    • changed EditText's selection handle's alpha on API < 11
    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(Sep 1, 2015)

    • fixed shadows for views with rounded corners
    • default background for FloatingActionButton
    • fixed Android Marshmallow compatibility issue (FloatMath class)
    • added ContextWrapper
    • added VectorDrawable
    • added easy SVG loading using raw resources and ImageView's src attribute
    • added NavigationView
    • changed SVGActionButton and ImageActionButton to FloatingActionButton
    Source code(tar.gz)
    Source code(zip)
Owner
An engineer, a guitarist and a platypus with love for UI/UX
null
IconicDroid is a custom Android Drawable which allows to draw icons from several iconic fonts.

IconicDroid IconicDroid is a custom Android Drawable which allows to draw icons from several iconic fonts. Try out the sample application on the Googl

Artur Termenji 387 Nov 20, 2022
An implementation of tap targets from the Material Design guidelines for feature discovery.

TapTargetView An implementation of tap targets from Google's Material Design guidelines on feature discovery. Min SDK: 14 JavaDoc Installation TapTar

Keepsafe 5.2k Dec 30, 2022
A library that provides an implementation of the banner widget from the Material design.

MaterialBanner A banner displays a prominent message and related optional actions. MaterialBanner is a library that provides an implementation of the

Sergey Ivanov 252 Nov 18, 2022
Another-read-more-lib - Another read more library for android

another-read-more-lib ?? Another read more library. Add it in your root build.gr

Geovani Amaral 9 Nov 2, 2022
Bootstrap style widgets for Android, with Glyph Icons

Android-Bootstrap Android Bootstrap is an Android library which provides custom views styled according to the Twitter Bootstrap Specification. This al

Bearded Hen 7.3k Jan 3, 2023
ExpandableSelector is an Android library created to show a list of Button/ImageButton widgets inside a animated container which can be collapsed or expanded.

ExpandableSelector ExpandableSelector is an Android library created to show a list of Button/ImageButton widgets inside a animated container which can

Karumi 699 Nov 19, 2022
Parallax everywhere is a library with alternative android widgets with parallax effects.

Parallax Everywhere# Parallax everywhere (PEW) is a library with alternative android views using parallax effects. Demo You can try the demo app on go

fmSirvent 712 Nov 14, 2022
A set of widgets to create smooth slideshows with ease.

Android SlideShow Widget A set of widgets to create smooth slide shows with ease. The slide show components are fully customizable and are not limited

MarvinLabs 211 Nov 20, 2022
Floating label input widgets

Android Floating Label Widgets A set of input widgets with a hint label that floats when input is not empty. Demo A demo of the widget is worth a thou

MarvinLabs 450 Nov 25, 2022
Awesome RunnerBe design system and more!

Honeycomb Awesome RunnerBe design system and more! Core Preview 아직 모든 요소가 구현되지 않았으며 단순히 미리보기 입니다 class MainActivity : AppCompatActivity() { overri

RunnerBe 2 Apr 21, 2022
A material Switch with icon animations and color transitions

Material Animated Switch A material Switch with icon animations and color transitions Sample video: Youtube Material Animated Switch video Sample app:

Adrián Lomas 1.2k Dec 29, 2022
A Material design Android pincode library. Supports Fingerprint.

LolliPin A Lollipop material design styled android pincode library (API 14+) To include in your project, add this to your build.gradle file: //Loll

Omada Health 1.6k Nov 25, 2022
A skeleton of google's appcompat android navigation drawer with material design.

Lollipop AppCompat Skeleton A skeleton of google's appcompat android navigation drawer with material design. Compatible to work on 4.0+ Based on Googl

Sachin Shinde 99 Nov 29, 2022
An Android library that brings the Material Design 5.1 sidebar to pre-5.1 devices.

MaterialScrollBar An Android library that brings the Material Design 5.1 scrollbar to pre-5.1 devices. Designed for Android's recyclerView. Video Imag

Turing Technologies (Wynne Plaga) 784 Nov 29, 2022
[Deprecated] Android Library that implements Snackbars (former known as Undobar) from Google's Material Design documentation.

UndoBar This lib is deprecated in favor of Google's Design Support Library which includes a Snackbar and is no longer being developed. Thanks for all

Kai Liao 577 Nov 25, 2022
An Android library that brings the Material Design 5.1 sidebar to pre-5.1 devices.

MaterialScrollBar An Android library that brings the Material Design 5.1 scrollbar to pre-5.1 devices. Designed for Android's recyclerView. Video Imag

Turing Technologies (Wynne Plaga) 784 Nov 29, 2022
Material Design tap target for Android. https://sjwall.github.io/MaterialTapTargetPrompt/

Material Tap Target Prompt A Tap Target implementation in Android based on Material Design Onboarding guidelines. For more information on tap targets

Sam Wall 1.5k Jan 4, 2023
(Deprecated) A custom view component that mimics the new Material Design Bottom Navigation pattern.

BottomBar (Deprecated) I don't have time to maintain this anymore. I basically wrote the whole library in a rush, without tests, while being a serious

Iiro Krankka 8.4k Dec 29, 2022
Android View for displaying and selecting values in a circle-shaped View, with animations and touch gestures.

CircleDisplay Android View for displaying and selecting (by touch) values / percentages in a circle-shaped View, with animations. Features Core featur

Philipp Jahoda 287 Nov 18, 2022