Skip to content

Instantly share code, notes, and snippets.

View runo280's full-sized avatar
🤨

runo280 runo280

🤨
View GitHub Profile
@antonshilov
antonshilov / SwipeButton.kt
Created January 15, 2022 13:04
Swipeable Button created with Jetpack Compose
package com.antonshilov.swipebutton
import androidx.compose.animation.Crossfade
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.Orientation
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
@mxalbert1996
mxalbert1996 / Scrollbar.kt
Last active April 15, 2025 09:09
Modifiers to draw scrollbars in Jetpack Compose
/*
* MIT License
*
* Copyright (c) 2022 Albert Chang
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
@zach-klippenstein
zach-klippenstein / Blockify.kt
Last active March 22, 2024 21:47
A Compose modifier to turn your apps into blocks (no, this has nothing to do with NFTs)
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.spring
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.detectDragGestures
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.integration.demos.BlockFilter.Companion.Lighting
import android.graphics.Matrix
import android.graphics.RectF
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@hisetu
hisetu / NoRipple.kt
Last active July 3, 2022 10:06
Jetpack Compose Modifier
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.selection.selectable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
inline fun Modifier.noRippleClickable(crossinline onClick: () -> Unit): Modifier = composed {
clickable(indication = null,
interactionSource = remember { MutableInteractionSource() }) {
@leonardoaramaki
leonardoaramaki / Debouncer.kt
Created November 16, 2021 16:59
Add click debouncing logic to Jetpack Compose
/**
* Wraps an [onClick] lambda with another one that supports debouncing. The default deboucing time
* is 1000ms.
*
* @return debounced onClick
*/
@Composable
inline fun debounced(crossinline onClick: () -> Unit, debounceTime: Long = 1000L): () -> Unit {
var lastTimeClicked by remember { mutableStateOf(0L) }
val onClickLambda: () -> Unit = {
@c5inco
c5inco / WearPreviewUtility.kt
Last active February 22, 2022 16:24
Small utility for framing a Compose Wear app in a watch bezel, whether round, square, or rectangular.
import android.content.res.Configuration
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Alignment
@XanderZhu
XanderZhu / Calendar.kt
Created October 3, 2021 08:20
Jetpack compose calendar.
@OptIn(ExperimentalPagerApi::class)
@Composable
fun Calendar(
startDate: LocalDate,
months: List<YearMonth>,
selectedDates: Set<LocalDate>,
focusedDate: LocalDate?,
isNewDateSelectionEnabled: Boolean,
onDateClick: (LocalDate) -> Unit,
horizontalPadding: Dp,
@c5inco
c5inco / MaterialMotionTransitions.kt
Last active December 7, 2023 08:12
Reusable transitions that map to Material 2 motion system - https://material.io/develop/android/theming/motion
// Requires Compose 1.1.0-alpha02+
// Best used with navigation animation transitions in Accompanist 0.17.0+
import androidx.compose.animation.*
import androidx.compose.animation.core.FastOutLinearInEasing
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.LinearOutSlowInEasing
import androidx.compose.animation.core.tween
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.dp
@mcsaeid
mcsaeid / Twitter.css
Last active April 25, 2022 18:27
Minimal Twitter
/* حذف لوگوی توئیتر */
[aria-label="Twitter"],
[aria-label="توییتر"] {
display: none;
}
/* ستون سمت چپ */
/* Explore و ،Bookmarks ،Lists چیزهایی که استفادهٔ کمتری دارن، شامل */