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

Flat Token Design Support & Podspec file #90

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

callbacknull
Copy link
Contributor

In this PR I've added support for flat color tokens (i.e no gradients). When the token is selected/highlighted the color is adjusted to be either slightly lighter or darker dependent on a weighted brightness of the token's tintcolor. See the image below for an example.

For those who don't know, you can adjust your token's tintColor in the following delegate:

  • (BOOL)tokenField:(TITokenField *)tokenField willAddToken:(TIToken *)token

I also added the podspec file as this is fairly standard across pods to have it in the repo. (I would say at least 90% of the pods I've used / looked at have it this way)

flat_tokens

Alex Bell added 3 commits July 9, 2014 14:53
TIToken's now support a 'flat design' that does not add a gradient
to the main body of the token. To use implement:
- (BOOL)tokenField: willAddToken:

And set your token's tint color and set flat design to YES.
When a flat design token is selected / highlighted the color of the
selected state is made either slightly darker or slightly brighter.
This is determined based of whether or not the color is a 'dark' color
or if it is a 'light' color. A weighted distance of the RGB color space
is computed and if the color is greater than 127.5 it is darker.

Weighted RGB Brightness formula: brightness=sqrt( .241*R^2 + .691*G^2 + .068*B^2)

Added TIToken private methods:
- (UIColor *)lighterColorForColor:(UIColor *)c;
- (UIColor *)darkerColorForColor:(UIColor *)c;
- (BOOL)isColorDarker:(UIColor *)color;
@callbacknull
Copy link
Contributor Author

In TIToken's drawRect: method I'm pretty sure I segregated all the gradient color setting correctly. Well, The results sure look right. But let me know if I may have messed that up and I can fix it.

Useful if you need to know when a token is being highlighted. For my use case
this was useful because of a 'tap to dismiss' checks to see if a token is being
highlighted and if it is then it won't dismiss the tokenfield from being the
first responder.
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

Successfully merging this pull request may close these issues.

1 participant